Skip to content

Commit 0c423cb

Browse files
chore: refactor BasePage to have initializer (#5)
1 parent fcdf071 commit 0c423cb

File tree

8 files changed

+59
-62
lines changed

8 files changed

+59
-62
lines changed

lib/openai.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
require "etc"
88
require "json"
99
require "net/http"
10+
require "pathname"
1011
require "rbconfig"
1112
require "securerandom"
1213
require "set"

lib/openai/base_page.rb

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,17 @@ def to_enum = super(:auto_paging_each)
4747

4848
alias_method :enum_for, :to_enum
4949

50-
# @!parse
51-
# # @private
52-
# #
53-
# # @param client [OpenAI::BaseClient]
54-
# # @param req [Hash{Symbol=>Object}]
55-
# # @param headers [Hash{String=>String}, Net::HTTPHeader]
56-
# # @param page_data [Object]
57-
# #
58-
# def initialize(client:, req:, headers:, page_data:); end
50+
# @private
51+
#
52+
# @param client [OpenAI::BaseClient]
53+
# @param req [Hash{Symbol=>Object}]
54+
# @param headers [Hash{String=>String}, Net::HTTPHeader]
55+
# @param page_data [Object]
56+
#
57+
def initialize(client:, req:, headers:, page_data:)
58+
@client = client
59+
@req = req
60+
super()
61+
end
5962
end
6063
end

lib/openai/base_stream.rb

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,16 @@ module OpenAI
1717
# messages => Array
1818
# ```
1919
class BaseStream
20-
# @private
21-
#
22-
# @param model [Class, OpenAI::Converter]
23-
# @param url [URI::Generic]
24-
# @param status [Integer]
25-
# @param response [Net::HTTPResponse]
26-
# @param messages [Enumerable]
20+
# @return [void]
2721
#
28-
def initialize(model:, url:, status:, response:, messages:)
29-
@model = model
30-
@url = url
31-
@status = status
32-
@response = response
33-
@messages = messages
34-
@iterator = iterator
35-
end
22+
def close = OpenAI::Util.close_fused!(@iterator)
3623

3724
# @private
3825
#
3926
# @return [Enumerable]
4027
#
4128
private def iterator = (raise NotImplementedError)
4229

43-
# @return [void]
44-
#
45-
def close = OpenAI::Util.close_fused!(@iterator)
46-
4730
# @param blk [Proc]
4831
#
4932
# @return [void]
@@ -60,5 +43,22 @@ def for_each(&)
6043
def to_enum = @iterator
6144

6245
alias_method :enum_for, :to_enum
46+
47+
# @private
48+
#
49+
# @param model [Class, OpenAI::Converter]
50+
# @param url [URI::Generic]
51+
# @param status [Integer]
52+
# @param response [Net::HTTPResponse]
53+
# @param messages [Enumerable]
54+
#
55+
def initialize(model:, url:, status:, response:, messages:)
56+
@model = model
57+
@url = url
58+
@status = status
59+
@response = response
60+
@messages = messages
61+
@iterator = iterator
62+
end
6363
end
6464
end

lib/openai/cursor_page.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ class CursorPage
3030
# @return [Boolean]
3131
attr_accessor :has_more
3232

33-
# rubocop:disable Lint/UnusedMethodArgument
3433
# @private
3534
#
3635
# @param client [OpenAI::BaseClient]
@@ -39,8 +38,7 @@ class CursorPage
3938
# @param page_data [Hash{Symbol=>Object}]
4039
#
4140
def initialize(client:, req:, headers:, page_data:)
42-
@client = client
43-
@req = req
41+
super
4442
model = req.fetch(:model)
4543

4644
case page_data
@@ -55,10 +53,8 @@ def initialize(client:, req:, headers:, page_data:)
5553
else
5654
end
5755
end
58-
# rubocop:enable Lint/UnusedMethodArgument
5956

6057
# @return [Boolean]
61-
#
6258
def next_page?
6359
has_more
6460
end

lib/openai/page.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ class Page
3030
# @return [String]
3131
attr_accessor :object
3232

33-
# rubocop:disable Lint/UnusedMethodArgument
3433
# @private
3534
#
3635
# @param client [OpenAI::BaseClient]
@@ -39,8 +38,7 @@ class Page
3938
# @param page_data [Array<Object>]
4039
#
4140
def initialize(client:, req:, headers:, page_data:)
42-
@client = client
43-
@req = req
41+
super
4442
model = req.fetch(:model)
4543

4644
case page_data
@@ -55,10 +53,8 @@ def initialize(client:, req:, headers:, page_data:)
5553
else
5654
end
5755
end
58-
# rubocop:enable Lint/UnusedMethodArgument
5956

6057
# @return [Boolean]
61-
#
6258
def next_page?
6359
false
6460
end

manifest.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ dependencies:
55
- etc
66
- json
77
- net/http
8+
- pathname
89
- rbconfig
910
- securerandom
1011
- set

rbi/lib/openai/base_stream.rbi

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,14 @@ module OpenAI
44
class BaseStream
55
Elem = type_member(:out)
66

7-
sig do
8-
params(
9-
model: T.any(T::Class[T.anything], OpenAI::Converter),
10-
url: URI::Generic,
11-
status: Integer,
12-
response: Net::HTTPResponse,
13-
messages: T::Enumerable[OpenAI::Util::SSEMessage]
14-
)
15-
.returns(T.attached_class)
16-
end
17-
def self.new(model:, url:, status:, response:, messages:)
7+
sig { void }
8+
def close
189
end
1910

2011
sig { overridable.returns(T::Enumerable[Elem]) }
2112
private def iterator
2213
end
2314

24-
sig { void }
25-
def close
26-
end
27-
2815
sig { params(blk: T.proc.params(arg0: Elem).void).void }
2916
def for_each(&blk)
3017
end
@@ -34,5 +21,18 @@ module OpenAI
3421
end
3522

3623
alias_method :enum_for, :to_enum
24+
25+
sig do
26+
params(
27+
model: T.any(T::Class[T.anything], OpenAI::Converter),
28+
url: URI::Generic,
29+
status: Integer,
30+
response: Net::HTTPResponse,
31+
messages: T::Enumerable[OpenAI::Util::SSEMessage]
32+
)
33+
.returns(T.attached_class)
34+
end
35+
def self.new(model:, url:, status:, response:, messages:)
36+
end
3737
end
3838
end

sig/openai/base_stream.rbs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
module OpenAI
22
class BaseStream[Elem]
3-
def initialize: (
4-
model: Class | OpenAI::Converter,
5-
url: URI::Generic,
6-
status: Integer,
7-
response: top,
8-
messages: Enumerable[OpenAI::Util::sse_message]
9-
) -> void
3+
def close: -> void
104

115
private def iterator: -> Enumerable[Elem]
126

13-
def close: -> void
14-
157
def for_each: { (Elem arg0) -> void } -> void
168

179
def to_enum: -> Enumerable[Elem]
1810

1911
alias enum_for to_enum
12+
13+
def initialize: (
14+
model: Class | OpenAI::Converter,
15+
url: URI::Generic,
16+
status: Integer,
17+
response: top,
18+
messages: Enumerable[OpenAI::Util::sse_message]
19+
) -> void
2020
end
2121
end

0 commit comments

Comments
 (0)