ruby-plsql 0.5.3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +5 -5
  2. data/.github/stale.yml +37 -0
  3. data/.github/workflows/rubocop.yml +37 -0
  4. data/.github/workflows/test.yml +69 -0
  5. data/.rubocop.yml +147 -0
  6. data/.travis.yml +88 -0
  7. data/.travis/oracle/download.sh +15 -0
  8. data/.travis/oracle/install.sh +32 -0
  9. data/.travis/setup_accounts.sh +9 -0
  10. data/Gemfile +17 -9
  11. data/History.txt +76 -0
  12. data/README.md +29 -6
  13. data/Rakefile +31 -26
  14. data/VERSION +1 -1
  15. data/Vagrantfile +4 -4
  16. data/ci/network/admin/tnsnames.ora +7 -0
  17. data/ci/setup_accounts.sh +9 -0
  18. data/gemfiles/Gemfile.activerecord-5.0 +21 -0
  19. data/gemfiles/Gemfile.activerecord-5.1 +21 -0
  20. data/gemfiles/Gemfile.activerecord-5.2 +21 -0
  21. data/gemfiles/Gemfile.activerecord-6.0 +21 -0
  22. data/gemfiles/Gemfile.activerecord-6.1 +21 -0
  23. data/gemfiles/Gemfile.activerecord-main +21 -0
  24. data/lib/plsql/connection.rb +19 -22
  25. data/lib/plsql/helpers.rb +1 -3
  26. data/lib/plsql/jdbc_connection.rb +70 -68
  27. data/lib/plsql/oci8_patches.rb +2 -2
  28. data/lib/plsql/oci_connection.rb +62 -77
  29. data/lib/plsql/package.rb +61 -46
  30. data/lib/plsql/procedure.rb +358 -78
  31. data/lib/plsql/procedure_call.rb +508 -463
  32. data/lib/plsql/schema.rb +96 -101
  33. data/lib/plsql/sequence.rb +10 -13
  34. data/lib/plsql/sql_statements.rb +9 -11
  35. data/lib/plsql/table.rb +60 -63
  36. data/lib/plsql/type.rb +71 -76
  37. data/lib/plsql/variable.rb +90 -94
  38. data/lib/plsql/version.rb +1 -1
  39. data/lib/plsql/view.rb +16 -19
  40. data/ruby-plsql.gemspec +55 -35
  41. data/spec/plsql/connection_spec.rb +72 -66
  42. data/spec/plsql/package_spec.rb +63 -14
  43. data/spec/plsql/procedure_spec.rb +603 -261
  44. data/spec/plsql/schema_spec.rb +47 -23
  45. data/spec/plsql/sequence_spec.rb +2 -2
  46. data/spec/plsql/sql_statements_spec.rb +6 -6
  47. data/spec/plsql/table_spec.rb +84 -79
  48. data/spec/plsql/type_spec.rb +24 -30
  49. data/spec/plsql/variable_spec.rb +80 -88
  50. data/spec/plsql/version_spec.rb +4 -4
  51. data/spec/plsql/view_spec.rb +42 -42
  52. data/spec/spec_helper.rb +38 -35
  53. data/spec/support/create_arunit_user.sql +2 -0
  54. data/spec/support/custom_config.rb.sample +14 -0
  55. data/spec/support/test_db.rb +12 -13
  56. data/spec/support/unlock_and_setup_hr_user.sql +2 -0
  57. metadata +111 -34
data/ruby-plsql.gemspec CHANGED
@@ -1,23 +1,31 @@
1
- # Generated by jeweler
1
+ # Generated by juwelier
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: ruby-plsql 0.5.3 ruby lib
5
+
6
+ # stub: ruby-plsql 0.8.0 ruby lib
6
7
 
7
8
  Gem::Specification.new do |s|
8
- s.name = "ruby-plsql"
9
- s.version = "0.5.3"
9
+ s.name = "ruby-plsql".freeze
10
+ s.version = "0.8.0"
10
11
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Raimonds Simanovskis"]
14
- s.date = "2015-05-07"
15
- s.description = "ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.\nIt could be used both for accessing Oracle PL/SQL API procedures in legacy applications\nas well as it could be used to create PL/SQL unit tests using Ruby testing libraries.\n"
16
- s.email = "raimonds.simanovskis@gmail.com"
12
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
13
+ s.require_paths = ["lib".freeze]
14
+ s.authors = ["Raimonds Simanovskis".freeze]
15
+ s.date = "2018-09-03"
16
+ s.description = " ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.\n It could be used both for accessing Oracle PL/SQL API procedures in legacy applications\n as well as it could be used to create PL/SQL unit tests using Ruby testing libraries.\n".freeze
17
+ s.email = "raimonds.simanovskis@gmail.com".freeze
17
18
  s.extra_rdoc_files = [
18
19
  "README.md"
19
20
  ]
20
21
  s.files = [
22
+ ".codeclimate.yml",
23
+ ".github/stale.yml",
24
+ ".rubocop.yml",
25
+ ".travis.yml",
26
+ ".travis/oracle/download.sh",
27
+ ".travis/oracle/install.sh",
28
+ ".travis/setup_accounts.sh",
21
29
  "Gemfile",
22
30
  "History.txt",
23
31
  "License.txt",
@@ -25,6 +33,9 @@ Gem::Specification.new do |s|
25
33
  "Rakefile",
26
34
  "VERSION",
27
35
  "Vagrantfile",
36
+ "gemfiles/Gemfile.activerecord-5.0",
37
+ "gemfiles/Gemfile.activerecord-5.1",
38
+ "gemfiles/Gemfile.activerecord-5.2",
28
39
  "lib/plsql/connection.rb",
29
40
  "lib/plsql/helpers.rb",
30
41
  "lib/plsql/jdbc_connection.rb",
@@ -57,38 +68,47 @@ Gem::Specification.new do |s|
57
68
  "spec/plsql/view_spec.rb",
58
69
  "spec/spec.opts",
59
70
  "spec/spec_helper.rb",
71
+ "spec/support/create_arunit_user.sql",
72
+ "spec/support/custom_config.rb.sample",
60
73
  "spec/support/file_check_script.sh",
61
- "spec/support/test_db.rb"
74
+ "spec/support/test_db.rb",
75
+ "spec/support/unlock_and_setup_hr_user.sql"
62
76
  ]
63
- s.homepage = "http://github.com/rsim/ruby-plsql"
64
- s.rubygems_version = "2.4.6"
65
- s.summary = "Ruby API for calling Oracle PL/SQL procedures."
77
+ s.homepage = "http://github.com/rsim/ruby-plsql".freeze
78
+ s.licenses = ["MIT".freeze]
79
+ s.rubygems_version = "2.7.7".freeze
80
+ s.summary = "Ruby API for calling Oracle PL/SQL procedures.".freeze
66
81
 
67
82
  if s.respond_to? :specification_version then
68
83
  s.specification_version = 4
69
84
 
70
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
71
- s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
72
- s.add_development_dependency(%q<rspec>, ["~> 3.1"])
73
- s.add_development_dependency(%q<activerecord>, ["< 4.3.0", ">= 3.2.3"])
74
- s.add_development_dependency(%q<activerecord-oracle_enhanced-adapter>, ["< 1.6.0", ">= 1.4.1"])
75
- s.add_development_dependency(%q<simplecov>, [">= 0"])
76
- s.add_development_dependency(%q<ruby-oci8>, ["~> 2.1.2"])
85
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.2.0") then
86
+ s.add_development_dependency("juwelier".freeze, ["~> 2.0"])
87
+ s.add_development_dependency("rspec_junit_formatter".freeze, [">= 0"])
88
+ s.add_development_dependency("rake".freeze, [">= 10.0"])
89
+ s.add_development_dependency("rspec".freeze, ["~> 3.1"])
90
+ s.add_development_dependency("activerecord".freeze, ["~> 5.0"])
91
+ s.add_development_dependency("activerecord-oracle_enhanced-adapter".freeze, ["~> 1.7"])
92
+ s.add_development_dependency("simplecov".freeze, [">= 0"])
93
+ s.add_development_dependency("ruby-oci8".freeze, ["~> 2.1"])
77
94
  else
78
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
79
- s.add_dependency(%q<rspec>, ["~> 3.1"])
80
- s.add_dependency(%q<activerecord>, ["< 4.3.0", ">= 3.2.3"])
81
- s.add_dependency(%q<activerecord-oracle_enhanced-adapter>, ["< 1.6.0", ">= 1.4.1"])
82
- s.add_dependency(%q<simplecov>, [">= 0"])
83
- s.add_dependency(%q<ruby-oci8>, ["~> 2.1.2"])
95
+ s.add_dependency("juwelier".freeze, ["~> 2.0"])
96
+ s.add_dependency("rspec_junit_formatter".freeze, [">= 0"])
97
+ s.add_dependency("rake".freeze, [">= 10.0"])
98
+ s.add_dependency("rspec".freeze, ["~> 3.1"])
99
+ s.add_dependency("activerecord".freeze, ["~> 5.0"])
100
+ s.add_dependency("activerecord-oracle_enhanced-adapter".freeze, ["~> 1.7"])
101
+ s.add_dependency("simplecov".freeze, [">= 0"])
102
+ s.add_dependency("ruby-oci8".freeze, ["~> 2.1"])
84
103
  end
85
104
  else
86
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
87
- s.add_dependency(%q<rspec>, ["~> 3.1"])
88
- s.add_dependency(%q<activerecord>, ["< 4.3.0", ">= 3.2.3"])
89
- s.add_dependency(%q<activerecord-oracle_enhanced-adapter>, ["< 1.6.0", ">= 1.4.1"])
90
- s.add_dependency(%q<simplecov>, [">= 0"])
91
- s.add_dependency(%q<ruby-oci8>, ["~> 2.1.2"])
105
+ s.add_dependency("juwelier".freeze, ["~> 2.0"])
106
+ s.add_dependency("rspec_junit_formatter".freeze, [">= 0"])
107
+ s.add_dependency("rake".freeze, [">= 10.0"])
108
+ s.add_dependency("rspec".freeze, ["~> 3.1"])
109
+ s.add_dependency("activerecord".freeze, ["~> 5.0"])
110
+ s.add_dependency("activerecord-oracle_enhanced-adapter".freeze, ["~> 1.7"])
111
+ s.add_dependency("simplecov".freeze, [">= 0"])
112
+ s.add_dependency("ruby-oci8".freeze, ["~> 2.1"])
92
113
  end
93
114
  end
94
-
@@ -1,13 +1,12 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
5
  describe "Connection" do
6
6
 
7
7
  before(:all) do
8
8
  @raw_conn = get_connection
9
- @conn = PLSQL::Connection.create( @raw_conn )
10
- @conn.set_time_zone
9
+ @conn = PLSQL::Connection.create(@raw_conn)
11
10
  end
12
11
 
13
12
  after(:all) do
@@ -24,8 +23,7 @@ describe "Connection" do
24
23
  end
25
24
 
26
25
  before(:each) do
27
- @conn1 = PLSQL::Connection.create( @raw_conn1 )
28
- @conn1.set_time_zone
26
+ @conn1 = PLSQL::Connection.create(@raw_conn1)
29
27
  end
30
28
 
31
29
  it "should create connection" do
@@ -53,38 +51,43 @@ describe "Connection" do
53
51
  # Ruby 1.8 and 1.9
54
52
  unless defined?(JRuby)
55
53
  describe "OCI data type conversions" do
54
+ it "should translate PL/SQL VARCHAR to Ruby String" do
55
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR", data_length: 100)).to eq [String, 100]
56
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR", data_length: nil)).to eq [String, 32767]
57
+ end
58
+
56
59
  it "should translate PL/SQL VARCHAR2 to Ruby String" do
57
- expect(@conn.plsql_to_ruby_data_type(:data_type => "VARCHAR2", :data_length => 100)).to eq [String, 100]
58
- expect(@conn.plsql_to_ruby_data_type(:data_type => "VARCHAR2", :data_length => nil)).to eq [String, 32767]
60
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR2", data_length: 100)).to eq [String, 100]
61
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR2", data_length: nil)).to eq [String, 32767]
59
62
  end
60
63
 
61
64
  it "should translate PL/SQL CLOB to Ruby String" do
62
- expect(@conn.plsql_to_ruby_data_type(:data_type => "CLOB", :data_length => 100_000)).to eq [OCI8::CLOB, nil]
63
- expect(@conn.plsql_to_ruby_data_type(:data_type => "CLOB", :data_length => nil)).to eq [OCI8::CLOB, nil]
65
+ expect(@conn.plsql_to_ruby_data_type(data_type: "CLOB", data_length: 100_000)).to eq [OCI8::CLOB, nil]
66
+ expect(@conn.plsql_to_ruby_data_type(data_type: "CLOB", data_length: nil)).to eq [OCI8::CLOB, nil]
64
67
  end
65
68
 
66
69
  it "should translate PL/SQL NUMBER to Ruby OraNumber" do
67
- expect(@conn.plsql_to_ruby_data_type(:data_type => "NUMBER", :data_length => 15)).to eq [OraNumber, nil]
70
+ expect(@conn.plsql_to_ruby_data_type(data_type: "NUMBER", data_length: 15)).to eq [OraNumber, nil]
68
71
  end
69
72
 
70
73
  it "should translate PL/SQL DATE to Ruby DateTime" do
71
- expect(@conn.plsql_to_ruby_data_type(:data_type => "DATE", :data_length => nil)).to eq [DateTime, nil]
74
+ expect(@conn.plsql_to_ruby_data_type(data_type: "DATE", data_length: nil)).to eq [DateTime, nil]
72
75
  end
73
76
 
74
77
  it "should translate PL/SQL TIMESTAMP to Ruby Time" do
75
- expect(@conn.plsql_to_ruby_data_type(:data_type => "TIMESTAMP", :data_length => nil)).to eq [Time, nil]
78
+ expect(@conn.plsql_to_ruby_data_type(data_type: "TIMESTAMP", data_length: nil)).to eq [Time, nil]
76
79
  end
77
80
 
78
- it "should not translate Ruby Fixnum when OraNumber type specified" do
81
+ it "should not translate small Ruby Integer when OraNumber type specified" do
79
82
  expect(@conn.ruby_value_to_ora_value(100, OraNumber)).to eql(100)
80
83
  end
81
84
 
82
- it "should translate Ruby Bignum value to OraNumber when OraNumber type specified" do
85
+ it "should not translate big Ruby Integer when OraNumber type specified" do
83
86
  ora_number = @conn.ruby_value_to_ora_value(12345678901234567890, OraNumber)
84
- expect(ora_number.class).to eq OraNumber
87
+ expect(ora_number).to be_an Integer
85
88
  expect(ora_number.to_s).to eq "12345678901234567890"
86
89
  # OraNumber has more numeric comparison methods in ruby-oci8 2.0
87
- expect(ora_number).to eq OraNumber.new("12345678901234567890") if OCI8::VERSION >= '2.0.0'
90
+ expect(ora_number).to eq OraNumber.new("12345678901234567890") if OCI8::VERSION >= "2.0.0"
88
91
  end
89
92
 
90
93
  it "should translate Ruby String value to OCI8::CLOB when OCI8::CLOB type specified" do
@@ -96,7 +99,7 @@ describe "Connection" do
96
99
  expect(ora_value.read).to eq large_text
97
100
  end
98
101
 
99
- it "should translate Oracle OraNumber integer value to Fixnum" do
102
+ it "should translate Oracle OraNumber integer value to Integer" do
100
103
  expect(@conn.ora_value_to_ruby_value(OraNumber.new(100))).to eql(100)
101
104
  end
102
105
 
@@ -105,7 +108,7 @@ describe "Connection" do
105
108
  end
106
109
 
107
110
  # ruby-oci8 2.0 returns DATE as Time or DateTime
108
- if OCI8::VERSION < '2.0.0'
111
+ if OCI8::VERSION < "2.0.0"
109
112
  it "should translate Oracle OraDate value to Time" do
110
113
  now = OraDate.now
111
114
  expect(@conn.ora_value_to_ruby_value(now)).to eql(now.to_time)
@@ -124,32 +127,36 @@ describe "Connection" do
124
127
  else
125
128
 
126
129
  describe "JDBC data type conversions" do
130
+ it "should translate PL/SQL VARCHAR to Ruby String" do
131
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR", data_length: 100)).to eq [String, 100]
132
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR", data_length: nil)).to eq [String, 32767]
133
+ end
127
134
  it "should translate PL/SQL VARCHAR2 to Ruby String" do
128
- expect(@conn.plsql_to_ruby_data_type(:data_type => "VARCHAR2", :data_length => 100)).to eq [String, 100]
129
- expect(@conn.plsql_to_ruby_data_type(:data_type => "VARCHAR2", :data_length => nil)).to eq [String, 32767]
135
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR2", data_length: 100)).to eq [String, 100]
136
+ expect(@conn.plsql_to_ruby_data_type(data_type: "VARCHAR2", data_length: nil)).to eq [String, 32767]
130
137
  end
131
138
 
132
139
  it "should translate PL/SQL NUMBER to Ruby BigDecimal" do
133
- expect(@conn.plsql_to_ruby_data_type(:data_type => "NUMBER", :data_length => 15)).to eq [BigDecimal, nil]
140
+ expect(@conn.plsql_to_ruby_data_type(data_type: "NUMBER", data_length: 15)).to eq [BigDecimal, nil]
134
141
  end
135
142
 
136
143
  it "should translate PL/SQL DATE to Ruby DateTime" do
137
- expect(@conn.plsql_to_ruby_data_type(:data_type => "DATE", :data_length => nil)).to eq [DateTime, nil]
144
+ expect(@conn.plsql_to_ruby_data_type(data_type: "DATE", data_length: nil)).to eq [DateTime, nil]
138
145
  end
139
146
 
140
147
  it "should translate PL/SQL TIMESTAMP to Ruby Time" do
141
- expect(@conn.plsql_to_ruby_data_type(:data_type => "TIMESTAMP", :data_length => nil)).to eq [Time, nil]
148
+ expect(@conn.plsql_to_ruby_data_type(data_type: "TIMESTAMP", data_length: nil)).to eq [Time, nil]
142
149
  end
143
150
 
144
- it "should not translate Ruby Fixnum when BigDecimal type specified" do
151
+ it "should not translate Ruby Integer when BigDecimal type specified" do
145
152
  expect(@conn.ruby_value_to_ora_value(100, BigDecimal)).to eq java.math.BigDecimal.new(100)
146
153
  end
147
154
 
148
155
  it "should translate Ruby String to string value" do
149
- expect(@conn.ruby_value_to_ora_value(1.1, String)).to eq '1.1'
156
+ expect(@conn.ruby_value_to_ora_value(1.1, String)).to eq "1.1"
150
157
  end
151
158
 
152
- it "should translate Ruby Bignum value to BigDecimal when BigDecimal type specified" do
159
+ it "should translate Ruby Integer value to BigDecimal when BigDecimal type specified" do
153
160
  big_decimal = @conn.ruby_value_to_ora_value(12345678901234567890, BigDecimal)
154
161
  expect(big_decimal).to eq java.math.BigDecimal.new("12345678901234567890")
155
162
  end
@@ -168,7 +175,7 @@ describe "Connection" do
168
175
  expect(ora_value).to be_nil
169
176
  end
170
177
 
171
- it "should translate Oracle BigDecimal integer value to Fixnum" do
178
+ it "should translate Oracle BigDecimal integer value to Integer" do
172
179
  expect(@conn.ora_value_to_ruby_value(BigDecimal("100"))).to eql(100)
173
180
  end
174
181
 
@@ -195,87 +202,87 @@ describe "Connection" do
195
202
  describe "SQL SELECT statements" do
196
203
 
197
204
  it "should execute SQL statement and return first result" do
198
- @now = Time.local(2008,05,31,23,22,11)
205
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
199
206
  expect(@conn.select_first("SELECT 'abc',123,123.456,
200
207
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS')
201
- FROM dual")).to eq ["abc",123,123.456,@now]
208
+ FROM dual")).to eq ["abc", 123, 123.456, @now]
202
209
  end
203
210
 
204
211
  it "should execute SQL statement and return first result as hash" do
205
- @now = Time.local(2008,05,31,23,22,11)
212
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
206
213
  expect(@conn.select_hash_first("SELECT 'abc' a, 123 b, 123.456 c,
207
214
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}', 'YYYY-MM-DD HH24:MI:SS') d
208
- FROM dual")).to eq({:a => "abc", :b => 123, :c => 123.456, :d => @now})
215
+ FROM dual")).to eq(a: "abc", b: 123, c: 123.456, d: @now)
209
216
  end
210
217
 
211
218
  it "should execute SQL statement with bind parameters and return first result" do
212
219
  @today = Date.parse("2008-05-31")
213
- @now = Time.local(2008,05,31,23,22,11)
220
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
214
221
  expect(@conn.select_first("SELECT :1,:2,:3,:4,:5 FROM dual",
215
- 'abc',123,123.456,@now,@today)).to eq ["abc",123,123.456,@now,Time.parse(@today.to_s)]
222
+ "abc", 123, 123.456, @now, @today)).to eq ["abc", 123, 123.456, @now, Time.parse(@today.to_s)]
216
223
  end
217
224
 
218
225
  it "should execute SQL statement with NULL values and return first result" do
219
- @now = Time.local(2008,05,31,23,22,11)
226
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
220
227
  expect(@conn.select_first("SELECT NULL,123,123.456,
221
228
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS')
222
- FROM dual")).to eq [nil,123,123.456,@now]
229
+ FROM dual")).to eq [nil, 123, 123.456, @now]
223
230
  end
224
231
 
225
232
  if defined?(JRuby)
226
233
 
227
234
  it "should execute SQL statement with NULL values as bind parameters and return first result" do
228
235
  @today = Date.parse("2008-05-31")
229
- @now = Time.local(2008,05,31,23,22,11)
236
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
230
237
  expect(@conn.select_first("SELECT :1,:2,:3,:4,:5 FROM dual",
231
- nil,123,123.456,@now,@today)).to eq [nil,123,123.456,@now,Time.parse(@today.to_s)]
238
+ nil, 123, 123.456, @now, @today)).to eq [nil, 123, 123.456, @now, Time.parse(@today.to_s)]
232
239
  end
233
240
 
234
241
  end
235
242
 
236
243
  it "should execute SQL statement and return all results" do
237
- @now = Time.local(2008,05,31,23,22,11)
244
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
238
245
  expect(@conn.select_all("SELECT 'abc',123,123.456,
239
246
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS')
240
247
  FROM dual
241
248
  UNION ALL SELECT 'abc',123,123.456,
242
249
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS')
243
- FROM dual")).to eq [["abc",123,123.456,@now],["abc",123,123.456,@now]]
250
+ FROM dual")).to eq [["abc", 123, 123.456, @now], ["abc", 123, 123.456, @now]]
244
251
  end
245
252
 
246
253
  it "should execute SQL statement and return all results as hash" do
247
- @now = Time.local(2008,05,31,23,22,11)
254
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
248
255
  expect(@conn.select_hash_all("SELECT 'abc' a, 123 b, 123.456 c,
249
256
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS') d
250
257
  FROM dual
251
258
  UNION ALL SELECT 'def' a, 123 b, 123.456 c,
252
259
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS') d
253
- FROM dual")).to eq [{:a=>"abc",:b=>123,:c=>123.456,:d=>@now},{:a=>"def",:b=>123,:c=>123.456,:d=>@now}]
260
+ FROM dual")).to eq [{ a: "abc", b: 123, c: 123.456, d: @now }, { a: "def", b: 123, c: 123.456, d: @now }]
254
261
  end
255
262
 
256
263
  it "should execute SQL statement with bind parameters and return all results" do
257
- @now = Time.local(2008,05,31,23,22,11)
264
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
258
265
  expect(@conn.select_all("SELECT :1,:2,:3,:4 FROM dual UNION ALL SELECT :1,:2,:3,:4 FROM dual",
259
- 'abc',123,123.456,@now,'abc',123,123.456,@now)).to eq [["abc",123,123.456,@now],["abc",123,123.456,@now]]
266
+ "abc", 123, 123.456, @now, "abc", 123, 123.456, @now)).to eq [["abc", 123, 123.456, @now], ["abc", 123, 123.456, @now]]
260
267
  end
261
268
 
262
269
  it "should execute SQL statement and yield all results in block" do
263
- @now = Time.local(2008,05,31,23,22,11)
270
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
264
271
  expect(@conn.select_all("SELECT 'abc',123,123.456,
265
272
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS')
266
273
  FROM dual
267
274
  UNION ALL SELECT 'abc',123,123.456,
268
275
  TO_DATE('#{@now.strftime("%Y-%m-%d %H:%M:%S")}','YYYY-MM-DD HH24:MI:SS')
269
276
  FROM dual") do |r|
270
- expect(r).to eq ["abc",123,123.456,@now]
277
+ expect(r).to eq ["abc", 123, 123.456, @now]
271
278
  end).to eq 2
272
279
  end
273
280
 
274
281
  it "should execute SQL statement with bind parameters and yield all results in block" do
275
- @now = Time.local(2008,05,31,23,22,11)
282
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
276
283
  expect(@conn.select_all("SELECT :1,:2,:3,:4 FROM dual UNION ALL SELECT :1,:2,:3,:4 FROM dual",
277
- 'abc',123,123.456,@now,'abc',123,123.456,@now) do |r|
278
- expect(r).to eq ["abc",123,123.456,@now]
284
+ "abc", 123, 123.456, @now, "abc", 123, 123.456, @now) do |r|
285
+ expect(r).to eq ["abc", 123, 123.456, @now]
279
286
  end).to eq 2
280
287
  end
281
288
 
@@ -284,7 +291,7 @@ describe "Connection" do
284
291
  describe "PL/SQL procedures" do
285
292
  before(:all) do
286
293
  @random = rand(1000)
287
- @now = Time.local(2008,05,31,23,22,11)
294
+ @now = Time.local(2008, 05, 31, 23, 22, 11)
288
295
  sql = <<-SQL
289
296
  CREATE OR REPLACE FUNCTION test_add_random (p_number NUMBER, p_varchar IN OUT VARCHAR2, p_date IN OUT DATE)
290
297
  RETURN NUMBER
@@ -307,10 +314,10 @@ describe "Connection" do
307
314
  END;
308
315
  SQL
309
316
  cursor = @conn.parse(sql)
310
- cursor.bind_param(":result", nil, :data_type => 'NUMBER', :in_out => 'OUT')
311
- cursor.bind_param(":p_number", 100, :data_type => 'NUMBER', :in_out => 'IN')
312
- cursor.bind_param(":p_varchar", "abc", :data_type => 'VARCHAR2', :in_out => 'IN/OUT')
313
- cursor.bind_param(":p_date", @now, :data_type => 'DATE', :in_out => 'IN/OUT')
317
+ cursor.bind_param(":result", nil, data_type: "NUMBER", in_out: "OUT")
318
+ cursor.bind_param(":p_number", 100, data_type: "NUMBER", in_out: "IN")
319
+ cursor.bind_param(":p_varchar", "abc", data_type: "VARCHAR2", in_out: "IN/OUT")
320
+ cursor.bind_param(":p_date", @now, data_type: "DATE", in_out: "IN/OUT")
314
321
  cursor.exec
315
322
  expect(cursor[":result"]).to eq @random + 100
316
323
  expect(cursor[":p_varchar"]).to eq "abc"
@@ -394,21 +401,21 @@ describe "Connection" do
394
401
  end
395
402
 
396
403
  it "should describe local synonym" do
397
- expect(@conn.describe_synonym('HR','SYNONYM_FOR_DUAL')).to eq ['SYS', 'DUAL']
398
- expect(@conn.describe_synonym('hr','synonym_for_dual')).to eq ['SYS', 'DUAL']
399
- expect(@conn.describe_synonym(:hr,:synonym_for_dual)).to eq ['SYS', 'DUAL']
404
+ expect(@conn.describe_synonym("HR", "SYNONYM_FOR_DUAL")).to eq ["SYS", "DUAL"]
405
+ expect(@conn.describe_synonym("hr", "synonym_for_dual")).to eq ["SYS", "DUAL"]
406
+ expect(@conn.describe_synonym(:hr, :synonym_for_dual)).to eq ["SYS", "DUAL"]
400
407
  end
401
408
 
402
409
  it "should return nil on non-existing synonym" do
403
- expect(@conn.describe_synonym('HR','SYNONYM_FOR_XXX')).to be_nil
404
- expect(@conn.describe_synonym('hr','synonym_for_xxx')).to be_nil
405
- expect(@conn.describe_synonym(:hr,:synonym_for_xxx)).to be_nil
410
+ expect(@conn.describe_synonym("HR", "SYNONYM_FOR_XXX")).to be_nil
411
+ expect(@conn.describe_synonym("hr", "synonym_for_xxx")).to be_nil
412
+ expect(@conn.describe_synonym(:hr, :synonym_for_xxx)).to be_nil
406
413
  end
407
414
 
408
415
  it "should describe public synonym" do
409
- expect(@conn.describe_synonym('PUBLIC','DUAL')).to eq ['SYS', 'DUAL']
410
- expect(@conn.describe_synonym('PUBLIC','dual')).to eq ['SYS', 'DUAL']
411
- expect(@conn.describe_synonym('PUBLIC',:dual)).to eq ['SYS', 'DUAL']
416
+ expect(@conn.describe_synonym("PUBLIC", "DUAL")).to eq ["SYS", "DUAL"]
417
+ expect(@conn.describe_synonym("PUBLIC", "dual")).to eq ["SYS", "DUAL"]
418
+ expect(@conn.describe_synonym("PUBLIC", :dual)).to eq ["SYS", "DUAL"]
412
419
  end
413
420
 
414
421
  end
@@ -416,7 +423,7 @@ describe "Connection" do
416
423
  describe "session information" do
417
424
  it "should get database version" do
418
425
  # using Oracle version 10.2.0.4 for unit tests
419
- expect(@conn.database_version).to eq DATABASE_VERSION.split('.').map{|n| n.to_i}
426
+ expect(@conn.database_version).to eq DATABASE_VERSION.split(".").map { |n| n.to_i }
420
427
  end
421
428
 
422
429
  it "should get session ID" do
@@ -446,7 +453,7 @@ describe "Connection" do
446
453
  end
447
454
 
448
455
  it "should not drop other session ruby temporary tables" do
449
- tmp_table = "ruby_#{@conn.session_id+1}_222_333"
456
+ tmp_table = "ruby_#{@conn.session_id + 1}_222_333"
450
457
  @conn.exec "CREATE GLOBAL TEMPORARY TABLE #{tmp_table} (dummy CHAR(1))"
451
458
  expect { @conn.select_first("SELECT * FROM #{tmp_table}") }.not_to raise_error
452
459
  @conn.drop_session_ruby_temporary_tables
@@ -467,8 +474,7 @@ describe "Connection" do
467
474
 
468
475
  def reconnect_connection
469
476
  @raw_conn = get_connection
470
- @conn = PLSQL::Connection.create( @raw_conn )
471
- @conn.set_time_zone
477
+ @conn = PLSQL::Connection.create(@raw_conn)
472
478
  end
473
479
 
474
480
  it "should drop current session ruby temporary tables" do