ruby-plsql 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Version" do
4
4
  it "should return ruby-plsql version" do
5
- PLSQL::VERSION.should == File.read(File.dirname(__FILE__)+'/../../VERSION').chomp
5
+ expect(PLSQL::VERSION).to eq(File.read(File.dirname(__FILE__)+'/../../VERSION').chomp)
6
6
  end
7
7
 
8
8
  end
@@ -44,15 +44,15 @@ describe "View" do
44
44
  describe "find" do
45
45
 
46
46
  it "should find existing view" do
47
- PLSQL::View.find(plsql, :test_employees_v).should_not be_nil
47
+ expect(PLSQL::View.find(plsql, :test_employees_v)).not_to be_nil
48
48
  end
49
49
 
50
50
  it "should not find nonexisting view" do
51
- PLSQL::View.find(plsql, :qwerty123456).should be_nil
51
+ expect(PLSQL::View.find(plsql, :qwerty123456)).to be_nil
52
52
  end
53
53
 
54
54
  it "should find existing view in schema" do
55
- plsql.test_employees_v.should be_instance_of(PLSQL::View)
55
+ expect(plsql.test_employees_v).to be_instance_of(PLSQL::View)
56
56
  end
57
57
 
58
58
  end
@@ -68,11 +68,11 @@ describe "View" do
68
68
  end
69
69
 
70
70
  it "should find synonym to view" do
71
- PLSQL::View.find(plsql, :test_employees_v_synonym).should_not be_nil
71
+ expect(PLSQL::View.find(plsql, :test_employees_v_synonym)).not_to be_nil
72
72
  end
73
73
 
74
74
  it "should find view using synonym in schema" do
75
- plsql.test_employees_v_synonym.should be_instance_of(PLSQL::View)
75
+ expect(plsql.test_employees_v_synonym).to be_instance_of(PLSQL::View)
76
76
  end
77
77
 
78
78
  end
@@ -80,11 +80,11 @@ describe "View" do
80
80
  describe "public synonym" do
81
81
 
82
82
  it "should find public synonym to view" do
83
- PLSQL::View.find(plsql, :user_tables).should_not be_nil
83
+ expect(PLSQL::View.find(plsql, :user_tables)).not_to be_nil
84
84
  end
85
85
 
86
86
  it "should find view using public synonym in schema" do
87
- plsql.user_tables.should be_instance_of(PLSQL::View)
87
+ expect(plsql.user_tables).to be_instance_of(PLSQL::View)
88
88
  end
89
89
 
90
90
  end
@@ -92,11 +92,11 @@ describe "View" do
92
92
  describe "columns" do
93
93
 
94
94
  it "should get column names for view" do
95
- plsql.test_employees_v.column_names.should == [:employee_id, :first_name, :last_name, :hire_date, :status]
95
+ expect(plsql.test_employees_v.column_names).to eq([:employee_id, :first_name, :last_name, :hire_date, :status])
96
96
  end
97
97
 
98
98
  it "should get columns metadata for view" do
99
- plsql.test_employees_v.columns.should == {
99
+ expect(plsql.test_employees_v.columns).to eq({
100
100
  :employee_id => {
101
101
  :position=>1, :data_type=>"NUMBER", :data_length=>22, :data_precision=>15, :data_scale=>0, :char_used=>nil,
102
102
  :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => false, :data_default => nil},
@@ -112,7 +112,7 @@ describe "View" do
112
112
  :status => {
113
113
  :position=>5, :data_type=>"VARCHAR2", :data_length=>1, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
114
114
  :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil}
115
- }
115
+ })
116
116
  end
117
117
 
118
118
  end
@@ -120,22 +120,22 @@ describe "View" do
120
120
  describe "insert" do
121
121
  it "should insert a record in view" do
122
122
  plsql.test_employees_v.insert @employees.first
123
- plsql.test_employees_v.all.should == [@employees.first]
123
+ expect(plsql.test_employees_v.all).to eq([@employees.first])
124
124
  end
125
125
 
126
126
  it "should insert a record in view using partial list of columns" do
127
127
  plsql.test_employees_v.insert @employees.first.except(:hire_date)
128
- plsql.test_employees_v.all.should == [@employees.first.merge(:hire_date => nil)]
128
+ expect(plsql.test_employees_v.all).to eq([@employees.first.merge(:hire_date => nil)])
129
129
  end
130
130
 
131
131
  it "should insert default value from table definition if value not provided" do
132
132
  plsql.test_employees_v.insert @employees.first.except(:status)
133
- plsql.test_employees_v.all.should == [@employees.first.merge(:status => 'N')]
133
+ expect(plsql.test_employees_v.all).to eq([@employees.first.merge(:status => 'N')])
134
134
  end
135
135
 
136
136
  it "should insert array of records in view" do
137
137
  plsql.test_employees_v.insert @employees
138
- plsql.test_employees_v.all("ORDER BY employee_id").should == @employees
138
+ expect(plsql.test_employees_v.all("ORDER BY employee_id")).to eq(@employees)
139
139
  end
140
140
 
141
141
  end
@@ -143,32 +143,32 @@ describe "View" do
143
143
  describe "insert values" do
144
144
  it "should insert a record with array of values" do
145
145
  plsql.test_employees_v.insert_values @employees_all_values.first
146
- plsql.test_employees_v.all.should == [@employees.first]
146
+ expect(plsql.test_employees_v.all).to eq([@employees.first])
147
147
  end
148
148
 
149
149
  it "should insert a record with list of all fields and array of values" do
150
150
  plsql.test_employees_v.insert_values @employees_all_fields, @employees_all_values.first
151
- plsql.test_employees_v.all.should == [@employees.first]
151
+ expect(plsql.test_employees_v.all).to eq([@employees.first])
152
152
  end
153
153
 
154
154
  it "should insert a record with list of some fields and array of values" do
155
155
  plsql.test_employees_v.insert_values @employees_some_fields, @employees_some_values.first
156
- plsql.test_employees_v.all.should == [@employees.first.merge(@employee_default_values)]
156
+ expect(plsql.test_employees_v.all).to eq([@employees.first.merge(@employee_default_values)])
157
157
  end
158
158
 
159
159
  it "should insert many records with array of values" do
160
160
  plsql.test_employees_v.insert_values *@employees_all_values
161
- plsql.test_employees_v.all.should == @employees
161
+ expect(plsql.test_employees_v.all).to eq(@employees)
162
162
  end
163
163
 
164
164
  it "should insert many records with list of all fields and array of values" do
165
165
  plsql.test_employees_v.insert_values @employees_all_fields, *@employees_all_values
166
- plsql.test_employees_v.all.should == @employees
166
+ expect(plsql.test_employees_v.all).to eq(@employees)
167
167
  end
168
168
 
169
169
  it "should insert many records with list of some fields and array of values" do
170
170
  plsql.test_employees_v.insert_values @employees_some_fields, *@employees_some_values
171
- plsql.test_employees_v.all.should == @employees.map{|e| e.merge(@employee_default_values)}
171
+ expect(plsql.test_employees_v.all).to eq(@employees.map{|e| e.merge(@employee_default_values)})
172
172
  end
173
173
 
174
174
  end
@@ -179,20 +179,20 @@ describe "View" do
179
179
  end
180
180
 
181
181
  it "should select first record in view" do
182
- plsql.test_employees_v.select(:first, "ORDER BY employee_id").should == @employees.first
183
- plsql.test_employees_v.first("ORDER BY employee_id").should == @employees.first
182
+ expect(plsql.test_employees_v.select(:first, "ORDER BY employee_id")).to eq(@employees.first)
183
+ expect(plsql.test_employees_v.first("ORDER BY employee_id")).to eq(@employees.first)
184
184
  end
185
185
 
186
186
  it "should select all records in view" do
187
- plsql.test_employees_v.select(:all, "ORDER BY employee_id").should == @employees
188
- plsql.test_employees_v.all("ORDER BY employee_id").should == @employees
189
- plsql.test_employees_v.all(:order_by => :employee_id).should == @employees
187
+ expect(plsql.test_employees_v.select(:all, "ORDER BY employee_id")).to eq(@employees)
188
+ expect(plsql.test_employees_v.all("ORDER BY employee_id")).to eq(@employees)
189
+ expect(plsql.test_employees_v.all(:order_by => :employee_id)).to eq(@employees)
190
190
  end
191
191
 
192
192
  it "should select record in view using WHERE condition" do
193
- plsql.test_employees_v.select(:first, "WHERE employee_id = :1", @employees.first[:employee_id]).should == @employees.first
194
- plsql.test_employees_v.first("WHERE employee_id = :1", @employees.first[:employee_id]).should == @employees.first
195
- plsql.test_employees_v.first(:employee_id => @employees.first[:employee_id]).should == @employees.first
193
+ expect(plsql.test_employees_v.select(:first, "WHERE employee_id = :1", @employees.first[:employee_id])).to eq(@employees.first)
194
+ expect(plsql.test_employees_v.first("WHERE employee_id = :1", @employees.first[:employee_id])).to eq(@employees.first)
195
+ expect(plsql.test_employees_v.first(:employee_id => @employees.first[:employee_id])).to eq(@employees.first)
196
196
  end
197
197
 
198
198
  it "should select record in view using :column => nil condition" do
@@ -200,18 +200,18 @@ describe "View" do
200
200
  employee[:employee_id] = employee[:employee_id] + 1
201
201
  employee[:hire_date] = nil
202
202
  plsql.test_employees_v.insert employee
203
- plsql.test_employees_v.first("WHERE hire_date IS NULL").should == employee
204
- plsql.test_employees_v.first(:hire_date => nil).should == employee
203
+ expect(plsql.test_employees_v.first("WHERE hire_date IS NULL")).to eq(employee)
204
+ expect(plsql.test_employees_v.first(:hire_date => nil)).to eq(employee)
205
205
  end
206
206
 
207
207
  it "should count records in view" do
208
- plsql.test_employees_v.select(:count).should == @employees.size
209
- plsql.test_employees_v.count.should == @employees.size
208
+ expect(plsql.test_employees_v.select(:count)).to eq(@employees.size)
209
+ expect(plsql.test_employees_v.count).to eq(@employees.size)
210
210
  end
211
211
 
212
212
  it "should count records in view using condition" do
213
- plsql.test_employees_v.select(:count, "WHERE employee_id <= :1", @employees[2][:employee_id]).should == 3
214
- plsql.test_employees_v.count("WHERE employee_id <= :1", @employees[2][:employee_id]).should == 3
213
+ expect(plsql.test_employees_v.select(:count, "WHERE employee_id <= :1", @employees[2][:employee_id])).to eq(3)
214
+ expect(plsql.test_employees_v.count("WHERE employee_id <= :1", @employees[2][:employee_id])).to eq(3)
215
215
  end
216
216
 
217
217
  end
@@ -221,17 +221,17 @@ describe "View" do
221
221
  employee_id = @employees.first[:employee_id]
222
222
  plsql.test_employees_v.insert @employees.first
223
223
  plsql.test_employees_v.update :first_name => 'Test', :where => {:employee_id => employee_id}
224
- plsql.test_employees_v.first(:employee_id => employee_id)[:first_name].should == 'Test'
224
+ expect(plsql.test_employees_v.first(:employee_id => employee_id)[:first_name]).to eq('Test')
225
225
  end
226
226
 
227
227
  it "should update a record in view using String WHERE condition" do
228
228
  employee_id = @employees.first[:employee_id]
229
229
  plsql.test_employees_v.insert @employees
230
230
  plsql.test_employees_v.update :first_name => 'Test', :where => "employee_id = #{employee_id}"
231
- plsql.test_employees_v.first(:employee_id => employee_id)[:first_name].should == 'Test'
231
+ expect(plsql.test_employees_v.first(:employee_id => employee_id)[:first_name]).to eq('Test')
232
232
  # all other records should not be changed
233
233
  plsql.test_employees_v.all("WHERE employee_id > :1", employee_id) do |employee|
234
- employee[:first_name].should_not == 'Test'
234
+ expect(employee[:first_name]).not_to eq('Test')
235
235
  end
236
236
  end
237
237
 
@@ -239,7 +239,7 @@ describe "View" do
239
239
  plsql.test_employees_v.insert @employees
240
240
  plsql.test_employees_v.update :first_name => 'Test'
241
241
  plsql.test_employees_v.all do |employee|
242
- employee[:first_name].should == 'Test'
242
+ expect(employee[:first_name]).to eq('Test')
243
243
  end
244
244
  end
245
245
 
@@ -250,14 +250,14 @@ describe "View" do
250
250
  employee_id = @employees.first[:employee_id]
251
251
  plsql.test_employees_v.insert @employees
252
252
  plsql.test_employees_v.delete :employee_id => employee_id
253
- plsql.test_employees_v.first(:employee_id => employee_id).should be_nil
254
- plsql.test_employees_v.all(:order_by => :employee_id).should == @employees[1, @employees.size-1]
253
+ expect(plsql.test_employees_v.first(:employee_id => employee_id)).to be_nil
254
+ expect(plsql.test_employees_v.all(:order_by => :employee_id)).to eq(@employees[1, @employees.size-1])
255
255
  end
256
256
 
257
257
  it "should delete all records from view" do
258
258
  plsql.test_employees_v.insert @employees
259
259
  plsql.test_employees_v.delete
260
- plsql.test_employees_v.all.should be_empty
260
+ expect(plsql.test_employees_v.all).to be_empty
261
261
  end
262
262
  end
263
263
 
@@ -1,9 +1,18 @@
1
1
  require "rubygems"
2
2
  require "bundler"
3
3
  Bundler.setup(:default, :development)
4
+ require 'simplecov'
4
5
 
5
- $:.unshift(File.dirname(__FILE__) + '/../lib')
6
+ SimpleCov.configure do
7
+ load_profile 'root_filter'
8
+ load_profile 'test_frameworks'
9
+ end
10
+
11
+ ENV["COVERAGE"] && SimpleCov.start do
12
+ add_filter "/.rvm/"
13
+ end
6
14
 
15
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
16
  require 'rspec'
8
17
 
9
18
  unless ENV['NO_ACTIVERECORD']
@@ -15,8 +24,10 @@ end
15
24
  require 'ruby-plsql'
16
25
 
17
26
  DATABASE_NAME = ENV['DATABASE_NAME'] || 'orcl'
27
+ DATABASE_SERVICE_NAME = (defined?(JRUBY_VERSION) ? "/" : "") +
28
+ (ENV['DATABASE_SERVICE_NAME'] || DATABASE_NAME)
18
29
  DATABASE_HOST = ENV['DATABASE_HOST'] || 'localhost'
19
- DATABASE_PORT = ENV['DATABASE_PORT'] || 1521
30
+ DATABASE_PORT = (ENV['DATABASE_PORT'] || 1521).to_i
20
31
  DATABASE_USERS_AND_PASSWORDS = [
21
32
  [ENV['DATABASE_USER'] || 'hr', ENV['DATABASE_PASSWORD'] || 'hr'],
22
33
  [ENV['DATABASE_USER2'] || 'arunit', ENV['DATABASE_PASSWORD2'] || 'arunit']
@@ -24,32 +35,44 @@ DATABASE_USERS_AND_PASSWORDS = [
24
35
  # specify which database version is used (will be verified in one test)
25
36
  DATABASE_VERSION = ENV['DATABASE_VERSION'] || '10.2.0.4'
26
37
 
38
+ def get_eazy_connect_url(svc_separator = "")
39
+ "#{DATABASE_HOST}:#{DATABASE_PORT}#{svc_separator}#{DATABASE_SERVICE_NAME}"
40
+ end
41
+
42
+ def get_connection_url
43
+ unless defined?(JRUBY_VERSION)
44
+ (ENV['DATABASE_USE_TNS'] == 'NO') ? get_eazy_connect_url("/") : DATABASE_NAME
45
+ else
46
+ "jdbc:oracle:thin:@#{get_eazy_connect_url}"
47
+ end
48
+ end
49
+
27
50
  def get_connection(user_number = 0)
28
51
  database_user, database_password = DATABASE_USERS_AND_PASSWORDS[user_number]
29
52
  unless defined?(JRUBY_VERSION)
30
- begin
31
- OCI8.new(database_user, database_password, DATABASE_NAME)
32
- # if connection fails then sleep 5 seconds and retry
33
- rescue OCIError
34
- sleep 5
35
- OCI8.new(database_user, database_password, DATABASE_NAME)
53
+ try_to_connect(OCIError) do
54
+ OCI8.new(database_user, database_password, get_connection_url)
36
55
  end
37
56
  else
38
- begin
39
- java.sql.DriverManager.getConnection("jdbc:oracle:thin:@#{DATABASE_HOST}:#{DATABASE_PORT}:#{DATABASE_NAME}",
40
- database_user, database_password)
41
- # if connection fails then sleep 5 seconds and retry
42
- rescue NativeException
43
- sleep 5
44
- java.sql.DriverManager.getConnection("jdbc:oracle:thin:@#{DATABASE_HOST}:#{DATABASE_PORT}:#{DATABASE_NAME}",
45
- database_user, database_password)
57
+ try_to_connect(NativeException) do
58
+ java.sql.DriverManager.getConnection(get_connection_url, database_user, database_password)
46
59
  end
47
60
  end
48
61
  end
49
62
 
63
+ def try_to_connect(exception)
64
+ begin
65
+ yield
66
+ # if connection fails then sleep 5 seconds and retry
67
+ rescue exception
68
+ sleep 5
69
+ yield
70
+ end
71
+ end
72
+
50
73
  CONNECTION_PARAMS = {
51
74
  :adapter => "oracle_enhanced",
52
- :database => DATABASE_NAME,
75
+ :database => DATABASE_SERVICE_NAME,
53
76
  :host => DATABASE_HOST,
54
77
  :port => DATABASE_PORT,
55
78
  :username => DATABASE_USERS_AND_PASSWORDS[0][0],
metadata CHANGED
@@ -1,79 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-plsql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.5.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Raimonds Simanovskis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-04-16 00:00:00.000000000 Z
11
+ date: 2014-10-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: jeweler
16
- requirement: &2161503140 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 1.8.3
19
+ version: 2.0.1
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *2161503140
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.1
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rspec
27
- requirement: &2161502660 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ~>
31
+ - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: '2.9'
33
+ version: '3.1'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *2161502660
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.1'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: activerecord
38
- requirement: &2161502180 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ~>
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: 4.2.0
48
+ - - ">="
42
49
  - !ruby/object:Gem::Version
43
50
  version: 3.2.3
44
51
  type: :development
45
52
  prerelease: false
46
- version_requirements: *2161502180
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: 4.2.0
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 3.2.3
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: activerecord-oracle_enhanced-adapter
49
- requirement: &2161501700 !ruby/object:Gem::Requirement
50
- none: false
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: 1.6.0
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.4.1
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
51
74
  requirements:
52
- - - ~>
75
+ - - "<"
76
+ - !ruby/object:Gem::Version
77
+ version: 1.6.0
78
+ - - ">="
53
79
  - !ruby/object:Gem::Version
54
80
  version: 1.4.1
81
+ - !ruby/object:Gem::Dependency
82
+ name: simplecov
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
55
88
  type: :development
56
89
  prerelease: false
57
- version_requirements: *2161501700
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
58
95
  - !ruby/object:Gem::Dependency
59
96
  name: ruby-oci8
60
- requirement: &2161501220 !ruby/object:Gem::Requirement
61
- none: false
97
+ requirement: !ruby/object:Gem::Requirement
62
98
  requirements:
63
- - - ! '>='
99
+ - - "~>"
64
100
  - !ruby/object:Gem::Version
65
- version: '0'
101
+ version: 2.1.2
66
102
  type: :development
67
103
  prerelease: false
68
- version_requirements: *2161501220
69
- description: ! 'ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL
70
- procedures.
71
-
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 2.1.2
109
+ description: |
110
+ ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.
72
111
  It could be used both for accessing Oracle PL/SQL API procedures in legacy applications
73
-
74
112
  as well as it could be used to create PL/SQL unit tests using Ruby testing libraries.
75
-
76
- '
77
113
  email: raimonds.simanovskis@gmail.com
78
114
  executables: []
79
115
  extensions: []
@@ -120,29 +156,25 @@ files:
120
156
  - spec/spec_helper.rb
121
157
  homepage: http://github.com/rsim/ruby-plsql
122
158
  licenses: []
159
+ metadata: {}
123
160
  post_install_message:
124
161
  rdoc_options: []
125
162
  require_paths:
126
163
  - lib
127
164
  required_ruby_version: !ruby/object:Gem::Requirement
128
- none: false
129
165
  requirements:
130
- - - ! '>='
166
+ - - ">="
131
167
  - !ruby/object:Gem::Version
132
168
  version: '0'
133
- segments:
134
- - 0
135
- hash: 4542773542064598354
136
169
  required_rubygems_version: !ruby/object:Gem::Requirement
137
- none: false
138
170
  requirements:
139
- - - ! '>='
171
+ - - ">="
140
172
  - !ruby/object:Gem::Version
141
173
  version: '0'
142
174
  requirements: []
143
175
  rubyforge_project:
144
- rubygems_version: 1.8.11
176
+ rubygems_version: 2.2.2
145
177
  signing_key:
146
- specification_version: 3
178
+ specification_version: 4
147
179
  summary: Ruby API for calling Oracle PL/SQL procedures.
148
180
  test_files: []