Skip to content

Commit 8572b69

Browse files
committed
Remove the Ruby:: module and all nesting within ruby/ folders. Standardize the on the root level OpenAI:: module prefix.
1 parent d6ca4c5 commit 8572b69

24 files changed

+80
-82
lines changed

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Ruby::OpenAI
1+
# Ruby OpenAI
22

33
[![Gem Version](https://badge.fury.io/rb/ruby-openai.svg)](https://badge.fury.io/rb/ruby-openai)
44
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/alexrudall/ruby-openai/blob/main/LICENSE.txt)
@@ -32,7 +32,7 @@ $ gem install ruby-openai
3232
and require with:
3333

3434
```ruby
35-
require "ruby/openai"
35+
require "openai"
3636
```
3737

3838
## Usage
@@ -53,7 +53,7 @@ For a quick test you can pass your token directly to a new client:
5353
For a more robust setup, you can configure the gem with your API keys, for example in an `openai.rb` initializer file. Never hardcode secrets into your codebase - instead use something like [dotenv](https://github.com/motdotla/dotenv) to pass the keys safely into your environments.
5454

5555
```ruby
56-
Ruby::OpenAI.configure do |config|
56+
OpenAI.configure do |config|
5757
config.access_token = ENV.fetch('OPENAI_ACCESS_TOKEN')
5858
config.organization_id = ENV.fetch('OPENAI_ORGANIZATION_ID') # Optional.
5959
end
@@ -274,4 +274,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
274274

275275
## Code of Conduct
276276

277-
Everyone interacting in the Ruby::OpenAI project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/alexrudall/ruby-openai/blob/main/CODE_OF_CONDUCT.md).
277+
Everyone interacting in the Ruby OpenAI project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/alexrudall/ruby-openai/blob/main/CODE_OF_CONDUCT.md).

bin/console

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env ruby
22

33
require "bundler/setup"
4-
require "ruby/openai"
4+
require "openai"
55

66
# You can add fixtures and/or initialization code here to make experimenting
77
# with your gem easier. You can also use a different console, if you like.

lib/openai.rb

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
require "httparty"
2+
3+
require_relative "openai/client"
4+
require_relative "openai/files"
5+
require_relative "openai/finetunes"
6+
require_relative "openai/images"
7+
require_relative "openai/models"
8+
require_relative "openai/version"
9+
10+
module OpenAI
11+
class Error < StandardError; end
12+
class ConfigurationError < Error; end
13+
14+
class Configuration
15+
attr_writer :access_token
16+
attr_accessor :api_version, :organization_id
17+
18+
DEFAULT_API_VERSION = "v1".freeze
19+
20+
def initialize
21+
@access_token = nil
22+
@api_version = DEFAULT_API_VERSION
23+
@organization_id = nil
24+
end
25+
26+
def access_token
27+
return @access_token if @access_token
28+
29+
error_text = "OpenAI access token missing! See https://github.com/alexrudall/ruby-openai#usage"
30+
raise ConfigurationError, error_text
31+
end
32+
end
33+
34+
class << self
35+
attr_writer :configuration
36+
end
37+
38+
def self.configuration
39+
@configuration ||= OpenAI::Configuration.new
40+
end
41+
42+
def self.configure
43+
yield(configuration)
44+
end
45+
end

lib/ruby/openai/client.rb lib/openai/client.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ class Client
33
URI_BASE = "https://api.openai.com/".freeze
44

55
def initialize(access_token: nil, organization_id: nil)
6-
Ruby::OpenAI.configuration.access_token = access_token if access_token
7-
Ruby::OpenAI.configuration.organization_id = organization_id if organization_id
6+
OpenAI.configuration.access_token = access_token if access_token
7+
OpenAI.configuration.organization_id = organization_id if organization_id
88
end
99

1010
def completions(parameters: {})
@@ -70,14 +70,14 @@ def self.delete(path:)
7070
end
7171

7272
private_class_method def self.uri(path:)
73-
URI_BASE + Ruby::OpenAI.configuration.api_version + path
73+
URI_BASE + OpenAI.configuration.api_version + path
7474
end
7575

7676
private_class_method def self.headers
7777
{
7878
"Content-Type" => "application/json",
79-
"Authorization" => "Bearer #{Ruby::OpenAI.configuration.access_token}",
80-
"OpenAI-Organization" => Ruby::OpenAI.configuration.organization_id
79+
"Authorization" => "Bearer #{OpenAI.configuration.access_token}",
80+
"OpenAI-Organization" => OpenAI.configuration.organization_id
8181
}
8282
end
8383
end

lib/ruby/openai/files.rb lib/openai/files.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module OpenAI
22
class Files
33
def initialize(access_token: nil, organization_id: nil)
4-
Ruby::OpenAI.configuration.access_token = access_token if access_token
5-
Ruby::OpenAI.configuration.organization_id = organization_id if organization_id
4+
OpenAI.configuration.access_token = access_token if access_token
5+
OpenAI.configuration.organization_id = organization_id if organization_id
66
end
77

88
def list

lib/ruby/openai/finetunes.rb lib/openai/finetunes.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module OpenAI
22
class Finetunes
33
def initialize(access_token: nil, organization_id: nil)
4-
Ruby::OpenAI.configuration.access_token = access_token if access_token
5-
Ruby::OpenAI.configuration.organization_id = organization_id if organization_id
4+
OpenAI.configuration.access_token = access_token if access_token
5+
OpenAI.configuration.organization_id = organization_id if organization_id
66
end
77

88
def list

lib/ruby/openai/images.rb lib/openai/images.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module OpenAI
22
class Images
33
def initialize(access_token: nil, organization_id: nil)
4-
Ruby::OpenAI.configuration.access_token = access_token if access_token
5-
Ruby::OpenAI.configuration.organization_id = organization_id if organization_id
4+
OpenAI.configuration.access_token = access_token if access_token
5+
OpenAI.configuration.organization_id = organization_id if organization_id
66
end
77

88
def generate(parameters: {})

lib/ruby/openai/models.rb lib/openai/models.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module OpenAI
22
class Models
33
def initialize(access_token: nil, organization_id: nil)
4-
Ruby::OpenAI.configuration.access_token = access_token if access_token
5-
Ruby::OpenAI.configuration.organization_id = organization_id if organization_id
4+
OpenAI.configuration.access_token = access_token if access_token
5+
OpenAI.configuration.organization_id = organization_id if organization_id
66
end
77

88
def list

lib/openai/version.rb

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module OpenAI
2+
VERSION = "3.2.0".freeze
3+
end

lib/ruby/openai.rb

+1-46
Original file line numberDiff line numberDiff line change
@@ -1,46 +1 @@
1-
require "httparty"
2-
require "ruby/openai/client"
3-
require "ruby/openai/files"
4-
require "ruby/openai/finetunes"
5-
require "ruby/openai/images"
6-
require "ruby/openai/models"
7-
require "ruby/openai/version"
8-
9-
module Ruby
10-
module OpenAI
11-
class Error < StandardError; end
12-
class ConfigurationError < Error; end
13-
14-
class Configuration
15-
attr_writer :access_token
16-
attr_accessor :api_version, :organization_id
17-
18-
DEFAULT_API_VERSION = "v1".freeze
19-
20-
def initialize
21-
@access_token = nil
22-
@api_version = DEFAULT_API_VERSION
23-
@organization_id = nil
24-
end
25-
26-
def access_token
27-
return @access_token if @access_token
28-
29-
error_text = "OpenAI access token missing! See https://github.com/alexrudall/ruby-openai#usage"
30-
raise ConfigurationError, error_text
31-
end
32-
end
33-
34-
class << self
35-
attr_writer :configuration
36-
end
37-
38-
def self.configuration
39-
@configuration ||= OpenAI::Configuration.new
40-
end
41-
42-
def self.configure
43-
yield(configuration)
44-
end
45-
end
46-
end
1+
require_relative "../openai"

lib/ruby/openai/version.rb

-5
This file was deleted.

ruby-openai.gemspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
require_relative "lib/ruby/openai/version"
1+
require_relative "lib/openai/version"
22

33
Gem::Specification.new do |spec|
44
spec.name = "ruby-openai"
5-
spec.version = Ruby::OpenAI::VERSION
5+
spec.version = OpenAI::VERSION
66
spec.authors = ["Alex"]
77
spec.email = ["[email protected]"]
88

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

spec/ruby/openai_spec.rb spec/openai_spec.rb

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
RSpec.describe Ruby::OpenAI do
1+
RSpec.describe OpenAI do
22
it "has a version number" do
3-
expect(Ruby::OpenAI::VERSION).not_to be nil
3+
expect(OpenAI::VERSION).not_to be nil
44
end
55

66
describe "#configure" do
@@ -9,24 +9,24 @@
99
let(:organization_id) { "def456" }
1010

1111
before do
12-
Ruby::OpenAI.configure do |config|
12+
OpenAI.configure do |config|
1313
config.access_token = access_token
1414
config.api_version = api_version
1515
config.organization_id = organization_id
1616
end
1717
end
1818

1919
it "returns the config" do
20-
expect(Ruby::OpenAI.configuration.access_token).to eq(access_token)
21-
expect(Ruby::OpenAI.configuration.api_version).to eq(api_version)
22-
expect(Ruby::OpenAI.configuration.organization_id).to eq(organization_id)
20+
expect(OpenAI.configuration.access_token).to eq(access_token)
21+
expect(OpenAI.configuration.api_version).to eq(api_version)
22+
expect(OpenAI.configuration.organization_id).to eq(organization_id)
2323
end
2424

2525
context "without an access token" do
2626
let(:access_token) { nil }
2727

2828
it "raises an error" do
29-
expect { OpenAI::Client.new.completions }.to raise_error(Ruby::OpenAI::ConfigurationError)
29+
expect { OpenAI::Client.new.completions }.to raise_error(OpenAI::ConfigurationError)
3030
end
3131
end
3232
end

spec/spec_helper.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "bundler/setup"
22
require "dotenv/load"
3-
require "ruby/openai"
3+
require "openai"
44
require "vcr"
55

66
Dir[File.expand_path("spec/support/**/*.rb")].sort.each { |f| require f }
@@ -10,8 +10,8 @@
1010
c.cassette_library_dir = "spec/fixtures/cassettes"
1111
c.default_cassette_options = { record: ENV["NO_VCR"] == "true" ? :all : :new_episodes,
1212
match_requests_on: [:method, :uri, VCRMultipartMatcher.new] }
13-
c.filter_sensitive_data("<OPENAI_ACCESS_TOKEN>") { Ruby::OpenAI.configuration.access_token }
14-
c.filter_sensitive_data("<OPENAI_ORGANIZATION_ID>") { Ruby::OpenAI.configuration.organization_id }
13+
c.filter_sensitive_data("<OPENAI_ACCESS_TOKEN>") { OpenAI.configuration.access_token }
14+
c.filter_sensitive_data("<OPENAI_ORGANIZATION_ID>") { OpenAI.configuration.organization_id }
1515
end
1616

1717
RSpec.configure do |c|
@@ -26,7 +26,7 @@
2626
end
2727

2828
c.before(:all) do
29-
Ruby::OpenAI.configure do |config|
29+
OpenAI.configure do |config|
3030
config.access_token = ENV.fetch("OPENAI_ACCESS_TOKEN")
3131
end
3232
end

0 commit comments

Comments
 (0)