ruby-plsql 0.5.3 → 0.8.0
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.
- checksums.yaml +5 -5
- data/.github/stale.yml +37 -0
- data/.github/workflows/rubocop.yml +37 -0
- data/.github/workflows/test.yml +69 -0
- data/.rubocop.yml +147 -0
- data/.travis.yml +88 -0
- data/.travis/oracle/download.sh +15 -0
- data/.travis/oracle/install.sh +32 -0
- data/.travis/setup_accounts.sh +9 -0
- data/Gemfile +17 -9
- data/History.txt +76 -0
- data/README.md +29 -6
- data/Rakefile +31 -26
- data/VERSION +1 -1
- data/Vagrantfile +4 -4
- data/ci/network/admin/tnsnames.ora +7 -0
- data/ci/setup_accounts.sh +9 -0
- data/gemfiles/Gemfile.activerecord-5.0 +21 -0
- data/gemfiles/Gemfile.activerecord-5.1 +21 -0
- data/gemfiles/Gemfile.activerecord-5.2 +21 -0
- data/gemfiles/Gemfile.activerecord-6.0 +21 -0
- data/gemfiles/Gemfile.activerecord-6.1 +21 -0
- data/gemfiles/Gemfile.activerecord-main +21 -0
- data/lib/plsql/connection.rb +19 -22
- data/lib/plsql/helpers.rb +1 -3
- data/lib/plsql/jdbc_connection.rb +70 -68
- data/lib/plsql/oci8_patches.rb +2 -2
- data/lib/plsql/oci_connection.rb +62 -77
- data/lib/plsql/package.rb +61 -46
- data/lib/plsql/procedure.rb +358 -78
- data/lib/plsql/procedure_call.rb +508 -463
- data/lib/plsql/schema.rb +96 -101
- data/lib/plsql/sequence.rb +10 -13
- data/lib/plsql/sql_statements.rb +9 -11
- data/lib/plsql/table.rb +60 -63
- data/lib/plsql/type.rb +71 -76
- data/lib/plsql/variable.rb +90 -94
- data/lib/plsql/version.rb +1 -1
- data/lib/plsql/view.rb +16 -19
- data/ruby-plsql.gemspec +55 -35
- data/spec/plsql/connection_spec.rb +72 -66
- data/spec/plsql/package_spec.rb +63 -14
- data/spec/plsql/procedure_spec.rb +603 -261
- data/spec/plsql/schema_spec.rb +47 -23
- data/spec/plsql/sequence_spec.rb +2 -2
- data/spec/plsql/sql_statements_spec.rb +6 -6
- data/spec/plsql/table_spec.rb +84 -79
- data/spec/plsql/type_spec.rb +24 -30
- data/spec/plsql/variable_spec.rb +80 -88
- data/spec/plsql/version_spec.rb +4 -4
- data/spec/plsql/view_spec.rb +42 -42
- data/spec/spec_helper.rb +38 -35
- data/spec/support/create_arunit_user.sql +2 -0
- data/spec/support/custom_config.rb.sample +14 -0
- data/spec/support/test_db.rb +12 -13
- data/spec/support/unlock_and_setup_hr_user.sql +2 -0
- metadata +111 -34
data/spec/spec_helper.rb
CHANGED
@@ -1,50 +1,50 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "bundler"
|
3
3
|
Bundler.setup(:default, :development)
|
4
|
-
require
|
4
|
+
require "simplecov"
|
5
5
|
|
6
6
|
SimpleCov.configure do
|
7
|
-
load_profile
|
8
|
-
load_profile
|
7
|
+
load_profile "root_filter"
|
8
|
+
load_profile "test_frameworks"
|
9
9
|
end
|
10
10
|
|
11
11
|
ENV["COVERAGE"] && SimpleCov.start do
|
12
12
|
add_filter "/.rvm/"
|
13
13
|
end
|
14
14
|
|
15
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__),
|
16
|
-
require
|
15
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
16
|
+
require "rspec"
|
17
17
|
|
18
|
-
unless ENV[
|
19
|
-
require
|
18
|
+
unless ENV["NO_ACTIVERECORD"]
|
19
|
+
require "active_record"
|
20
20
|
else
|
21
|
-
puts
|
21
|
+
puts "Without ActiveRecord"
|
22
22
|
end
|
23
23
|
|
24
|
-
require
|
24
|
+
require "ruby-plsql"
|
25
25
|
|
26
26
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
27
27
|
# in spec/support/ and its subdirectories.
|
28
|
-
Dir[File.join(File.dirname(__FILE__),
|
28
|
+
Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each { |f| require f }
|
29
29
|
|
30
|
-
if ENV[
|
31
|
-
DATABASE_NAME =
|
30
|
+
if ENV["USE_VM_DATABASE"] == "Y"
|
31
|
+
DATABASE_NAME = "XE"
|
32
32
|
else
|
33
|
-
DATABASE_NAME = ENV[
|
33
|
+
DATABASE_NAME = ENV["DATABASE_NAME"] || "orcl"
|
34
34
|
end
|
35
35
|
|
36
36
|
DATABASE_SERVICE_NAME = (defined?(JRUBY_VERSION) ? "/" : "") +
|
37
|
-
(ENV[
|
38
|
-
DATABASE_HOST = ENV[
|
39
|
-
DATABASE_PORT = (ENV[
|
37
|
+
(ENV["DATABASE_SERVICE_NAME"] || DATABASE_NAME)
|
38
|
+
DATABASE_HOST = ENV["DATABASE_HOST"] || "localhost"
|
39
|
+
DATABASE_PORT = (ENV["DATABASE_PORT"] || 1521).to_i
|
40
40
|
DATABASE_USERS_AND_PASSWORDS = [
|
41
|
-
[ENV[
|
42
|
-
[ENV[
|
41
|
+
[ENV["DATABASE_USER"] || "hr", ENV["DATABASE_PASSWORD"] || "hr"],
|
42
|
+
[ENV["DATABASE_USER2"] || "arunit", ENV["DATABASE_PASSWORD2"] || "arunit"]
|
43
43
|
]
|
44
44
|
# specify which database version is used (will be verified in one test)
|
45
|
-
DATABASE_VERSION = ENV[
|
45
|
+
DATABASE_VERSION = ENV["DATABASE_VERSION"] || "10.2.0.4"
|
46
46
|
|
47
|
-
if ENV[
|
47
|
+
if ENV["USE_VM_DATABASE"] == "Y"
|
48
48
|
RSpec.configure do |config|
|
49
49
|
config.before(:suite) do
|
50
50
|
TestDb.build
|
@@ -58,13 +58,21 @@ if ENV['USE_VM_DATABASE'] == 'Y'
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
+
def oracle_error_class
|
62
|
+
unless defined?(JRUBY_VERSION)
|
63
|
+
OCIError
|
64
|
+
else
|
65
|
+
java.sql.SQLException
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
61
69
|
def get_eazy_connect_url(svc_separator = "")
|
62
70
|
"#{DATABASE_HOST}:#{DATABASE_PORT}#{svc_separator}#{DATABASE_SERVICE_NAME}"
|
63
71
|
end
|
64
72
|
|
65
73
|
def get_connection_url
|
66
74
|
unless defined?(JRUBY_VERSION)
|
67
|
-
(ENV[
|
75
|
+
(ENV["DATABASE_USE_TNS"] == "NO") ? get_eazy_connect_url("/") : DATABASE_NAME
|
68
76
|
else
|
69
77
|
"jdbc:oracle:thin:@#{get_eazy_connect_url}"
|
70
78
|
end
|
@@ -77,7 +85,7 @@ def get_connection(user_number = 0)
|
|
77
85
|
OCI8.new(database_user, database_password, get_connection_url)
|
78
86
|
end
|
79
87
|
else
|
80
|
-
try_to_connect(
|
88
|
+
try_to_connect(Java::JavaSql::SQLException) do
|
81
89
|
java.sql.DriverManager.getConnection(get_connection_url, database_user, database_password)
|
82
90
|
end
|
83
91
|
end
|
@@ -94,25 +102,20 @@ def try_to_connect(exception)
|
|
94
102
|
end
|
95
103
|
|
96
104
|
CONNECTION_PARAMS = {
|
97
|
-
:
|
98
|
-
:
|
99
|
-
:
|
100
|
-
:
|
101
|
-
:
|
102
|
-
:
|
105
|
+
adapter: "oracle_enhanced",
|
106
|
+
database: DATABASE_SERVICE_NAME,
|
107
|
+
host: DATABASE_HOST,
|
108
|
+
port: DATABASE_PORT,
|
109
|
+
username: DATABASE_USERS_AND_PASSWORDS[0][0],
|
110
|
+
password: DATABASE_USERS_AND_PASSWORDS[0][1]
|
103
111
|
}
|
104
112
|
|
105
113
|
class Hash
|
106
114
|
def except(*blacklist)
|
107
|
-
self.reject {|key, value| blacklist.include?(key) }
|
115
|
+
self.reject { |key, value| blacklist.include?(key) }
|
108
116
|
end unless method_defined?(:except)
|
109
117
|
|
110
118
|
def only(*whitelist)
|
111
|
-
self.reject {|key, value| !whitelist.include?(key) }
|
119
|
+
self.reject { |key, value| !whitelist.include?(key) }
|
112
120
|
end unless method_defined?(:only)
|
113
121
|
end
|
114
|
-
|
115
|
-
# set default time zone in TZ environment variable
|
116
|
-
# which will be used to set session time zone
|
117
|
-
ENV['TZ'] ||= 'Europe/Riga'
|
118
|
-
# ENV['TZ'] ||= 'UTC'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Template file should be copied to locale_support.rb to be automatically included by code
|
2
|
+
#
|
3
|
+
|
4
|
+
# Set Oracle Database session timezone, if not already set in env variable
|
5
|
+
# This setting needs to be in place to make sure that Oracle properly represents the timestamp format on your local machine.
|
6
|
+
# Do not use 'OS_TZ' value or fixed offset values like '05:00', for daylight saving-enabled timezones.
|
7
|
+
# See: http://docs.oracle.com/cd/E18283_01/server.112/e10729/ch4datetime.htm#CBBEEAFB
|
8
|
+
# The setting cannot be derived directly from operating system or ruby, as different timezone names are used.
|
9
|
+
ENV['ORA_SDTZ'] ||= 'Europe/Riga'
|
10
|
+
#Sets the Ruby timezone to be used, if not already set in env variable
|
11
|
+
ENV['TZ'] ||= 'Europe/Riga'
|
12
|
+
#Sets the Language, locale and encoding settings to be used by Oracle session, if not already set in env variable
|
13
|
+
ENV['NLS_LANG'] ||= 'AMERICAN_AMERICA.AL32UTF8'
|
14
|
+
|
data/spec/support/test_db.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
class TestDb
|
2
|
-
|
3
2
|
DATABASE_USERS = %w{hr arunit}
|
4
3
|
|
5
4
|
def self.build
|
@@ -11,8 +10,8 @@ class TestDb
|
|
11
10
|
end
|
12
11
|
|
13
12
|
def self.database_version
|
14
|
-
|
15
|
-
|
13
|
+
db = self.new
|
14
|
+
db.database_version
|
16
15
|
end
|
17
16
|
|
18
17
|
def connection
|
@@ -21,15 +20,15 @@ class TestDb
|
|
21
20
|
Timeout::timeout(5) {
|
22
21
|
if defined?(JRUBY_VERSION)
|
23
22
|
@connection = java.sql.DriverManager.get_connection(
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
)
|
23
|
+
"jdbc:oracle:thin:@127.0.0.1:1521/XE",
|
24
|
+
"system",
|
25
|
+
"oracle"
|
26
|
+
)
|
28
27
|
else
|
29
28
|
@connection = OCI8.new(
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
"system",
|
30
|
+
"oracle",
|
31
|
+
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))"
|
33
32
|
)
|
34
33
|
end
|
35
34
|
}
|
@@ -61,7 +60,7 @@ class TestDb
|
|
61
60
|
end
|
62
61
|
|
63
62
|
def database_users
|
64
|
-
DATABASE_USERS.inject([]){|array, user| array << [user.upcase, user]}
|
63
|
+
DATABASE_USERS.inject([]) { |array, user| array << [user.upcase, user] }
|
65
64
|
end
|
66
65
|
|
67
66
|
def cleanup_database_users
|
@@ -118,14 +117,14 @@ class TestDb
|
|
118
117
|
end
|
119
118
|
|
120
119
|
def database_version
|
121
|
-
query =
|
120
|
+
query = "SELECT version FROM V$INSTANCE"
|
122
121
|
|
123
122
|
if defined?(JRUBY_VERSION)
|
124
123
|
statement = connection.create_statement
|
125
124
|
resource = statement.execute_query(query)
|
126
125
|
|
127
126
|
resource.next
|
128
|
-
value = resource.get_string(
|
127
|
+
value = resource.get_string("VERSION")
|
129
128
|
|
130
129
|
resource.close
|
131
130
|
statement.close
|
metadata
CHANGED
@@ -1,83 +1,141 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-plsql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raimonds Simanovskis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: juwelier
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0
|
19
|
+
version: '2.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.0
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rspec_junit_formatter
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rubocop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '0.81'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.81'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop-performance
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
48
59
|
- - ">="
|
49
60
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
61
|
+
version: '0'
|
51
62
|
type: :development
|
52
63
|
prerelease: false
|
53
64
|
version_requirements: !ruby/object:Gem::Requirement
|
54
65
|
requirements:
|
55
|
-
- - "
|
66
|
+
- - ">="
|
56
67
|
- !ruby/object:Gem::Version
|
57
|
-
version:
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop-rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
58
80
|
- - ">="
|
59
81
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
82
|
+
version: '0'
|
61
83
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
84
|
+
name: rake
|
63
85
|
requirement: !ruby/object:Gem::Requirement
|
64
86
|
requirements:
|
65
|
-
- - "
|
87
|
+
- - ">="
|
66
88
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
89
|
+
version: '10.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
68
94
|
- - ">="
|
69
95
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
96
|
+
version: '10.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.1'
|
71
104
|
type: :development
|
72
105
|
prerelease: false
|
73
106
|
version_requirements: !ruby/object:Gem::Requirement
|
74
107
|
requirements:
|
75
|
-
- - "
|
108
|
+
- - "~>"
|
76
109
|
- !ruby/object:Gem::Version
|
77
|
-
version: 1
|
78
|
-
|
110
|
+
version: '3.1'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: activerecord
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '5.0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '5.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: activerecord-oracle_enhanced-adapter
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.7'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
79
137
|
- !ruby/object:Gem::Version
|
80
|
-
version: 1.
|
138
|
+
version: '1.7'
|
81
139
|
- !ruby/object:Gem::Dependency
|
82
140
|
name: simplecov
|
83
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,24 +156,32 @@ dependencies:
|
|
98
156
|
requirements:
|
99
157
|
- - "~>"
|
100
158
|
- !ruby/object:Gem::Version
|
101
|
-
version: 2.1
|
159
|
+
version: '2.1'
|
102
160
|
type: :development
|
103
161
|
prerelease: false
|
104
162
|
version_requirements: !ruby/object:Gem::Requirement
|
105
163
|
requirements:
|
106
164
|
- - "~>"
|
107
165
|
- !ruby/object:Gem::Version
|
108
|
-
version: 2.1
|
109
|
-
description: |
|
110
|
-
|
111
|
-
|
112
|
-
|
166
|
+
version: '2.1'
|
167
|
+
description: |2
|
168
|
+
ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.
|
169
|
+
It could be used both for accessing Oracle PL/SQL API procedures in legacy applications
|
170
|
+
as well as it could be used to create PL/SQL unit tests using Ruby testing libraries.
|
113
171
|
email: raimonds.simanovskis@gmail.com
|
114
172
|
executables: []
|
115
173
|
extensions: []
|
116
174
|
extra_rdoc_files:
|
117
175
|
- README.md
|
118
176
|
files:
|
177
|
+
- ".github/stale.yml"
|
178
|
+
- ".github/workflows/rubocop.yml"
|
179
|
+
- ".github/workflows/test.yml"
|
180
|
+
- ".rubocop.yml"
|
181
|
+
- ".travis.yml"
|
182
|
+
- ".travis/oracle/download.sh"
|
183
|
+
- ".travis/oracle/install.sh"
|
184
|
+
- ".travis/setup_accounts.sh"
|
119
185
|
- Gemfile
|
120
186
|
- History.txt
|
121
187
|
- License.txt
|
@@ -123,6 +189,14 @@ files:
|
|
123
189
|
- Rakefile
|
124
190
|
- VERSION
|
125
191
|
- Vagrantfile
|
192
|
+
- ci/network/admin/tnsnames.ora
|
193
|
+
- ci/setup_accounts.sh
|
194
|
+
- gemfiles/Gemfile.activerecord-5.0
|
195
|
+
- gemfiles/Gemfile.activerecord-5.1
|
196
|
+
- gemfiles/Gemfile.activerecord-5.2
|
197
|
+
- gemfiles/Gemfile.activerecord-6.0
|
198
|
+
- gemfiles/Gemfile.activerecord-6.1
|
199
|
+
- gemfiles/Gemfile.activerecord-main
|
126
200
|
- lib/plsql/connection.rb
|
127
201
|
- lib/plsql/helpers.rb
|
128
202
|
- lib/plsql/jdbc_connection.rb
|
@@ -155,10 +229,14 @@ files:
|
|
155
229
|
- spec/plsql/view_spec.rb
|
156
230
|
- spec/spec.opts
|
157
231
|
- spec/spec_helper.rb
|
232
|
+
- spec/support/create_arunit_user.sql
|
233
|
+
- spec/support/custom_config.rb.sample
|
158
234
|
- spec/support/file_check_script.sh
|
159
235
|
- spec/support/test_db.rb
|
236
|
+
- spec/support/unlock_and_setup_hr_user.sql
|
160
237
|
homepage: http://github.com/rsim/ruby-plsql
|
161
|
-
licenses:
|
238
|
+
licenses:
|
239
|
+
- MIT
|
162
240
|
metadata: {}
|
163
241
|
post_install_message:
|
164
242
|
rdoc_options: []
|
@@ -175,8 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
253
|
- !ruby/object:Gem::Version
|
176
254
|
version: '0'
|
177
255
|
requirements: []
|
178
|
-
|
179
|
-
rubygems_version: 2.4.6
|
256
|
+
rubygems_version: 3.2.22
|
180
257
|
signing_key:
|
181
258
|
specification_version: 4
|
182
259
|
summary: Ruby API for calling Oracle PL/SQL procedures.
|