ruby-plsql 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +30 -0
  3. data/.github/stale.yml +37 -0
  4. data/.rubocop.yml +153 -0
  5. data/.travis.yml +20 -6
  6. data/.travis/oracle/download.sh +9 -10
  7. data/.travis/oracle/install.sh +6 -6
  8. data/Gemfile +13 -9
  9. data/History.txt +26 -0
  10. data/README.md +9 -5
  11. data/Rakefile +31 -26
  12. data/VERSION +1 -1
  13. data/Vagrantfile +2 -2
  14. data/gemfiles/Gemfile.activerecord-5.0 +21 -0
  15. data/gemfiles/Gemfile.activerecord-5.1 +21 -0
  16. data/gemfiles/Gemfile.activerecord-5.2 +21 -0
  17. data/lib/plsql/connection.rb +16 -18
  18. data/lib/plsql/helpers.rb +1 -3
  19. data/lib/plsql/jdbc_connection.rb +66 -61
  20. data/lib/plsql/oci8_patches.rb +2 -2
  21. data/lib/plsql/oci_connection.rb +51 -69
  22. data/lib/plsql/package.rb +5 -8
  23. data/lib/plsql/procedure.rb +75 -78
  24. data/lib/plsql/procedure_call.rb +498 -501
  25. data/lib/plsql/schema.rb +95 -100
  26. data/lib/plsql/sequence.rb +10 -13
  27. data/lib/plsql/sql_statements.rb +9 -11
  28. data/lib/plsql/table.rb +59 -63
  29. data/lib/plsql/type.rb +71 -76
  30. data/lib/plsql/variable.rb +89 -94
  31. data/lib/plsql/version.rb +1 -1
  32. data/lib/plsql/view.rb +16 -19
  33. data/ruby-plsql.gemspec +41 -37
  34. data/spec/plsql/connection_spec.rb +67 -67
  35. data/spec/plsql/package_spec.rb +15 -15
  36. data/spec/plsql/procedure_spec.rb +286 -233
  37. data/spec/plsql/schema_spec.rb +22 -23
  38. data/spec/plsql/sequence_spec.rb +2 -2
  39. data/spec/plsql/sql_statements_spec.rb +5 -5
  40. data/spec/plsql/table_spec.rb +77 -77
  41. data/spec/plsql/type_spec.rb +23 -29
  42. data/spec/plsql/variable_spec.rb +59 -59
  43. data/spec/plsql/version_spec.rb +4 -4
  44. data/spec/plsql/view_spec.rb +42 -42
  45. data/spec/spec_helper.rb +37 -29
  46. data/spec/support/test_db.rb +12 -13
  47. metadata +44 -26
  48. data/.travis/oracle/LICENSE +0 -5
  49. data/.travis/oracle/README.md +0 -64
  50. data/.travis/oracle/download.js +0 -100
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
5
  describe "Package variables /" do
6
6
 
@@ -35,24 +35,24 @@ describe "Package variables /" do
35
35
  end
36
36
 
37
37
  it "should set and get VARCHAR variable" do
38
- plsql.test_package.varchar_variable = 'abc'
39
- expect(plsql.test_package.varchar_variable).to eq('abc')
38
+ plsql.test_package.varchar_variable = "abc"
39
+ expect(plsql.test_package.varchar_variable).to eq("abc")
40
40
  end
41
41
 
42
42
  it "should set and get VARCHAR2 variable" do
43
- plsql.test_package.varchar2_variable = 'abc'
44
- expect(plsql.test_package.varchar2_variable).to eq('abc')
43
+ plsql.test_package.varchar2_variable = "abc"
44
+ expect(plsql.test_package.varchar2_variable).to eq("abc")
45
45
  end
46
46
 
47
47
  it "should set and get VARCHAR2 variable with comment" do
48
- plsql.test_package.varchar2_variable2 = 'abc'
49
- expect(plsql.test_package.varchar2_variable2).to eq('abc')
48
+ plsql.test_package.varchar2_variable2 = "abc"
49
+ expect(plsql.test_package.varchar2_variable2).to eq("abc")
50
50
  end
51
51
 
52
52
  it "should get VARCHAR2 variable default value" do
53
- expect(plsql.test_package.varchar2_default).to eq('default')
54
- expect(plsql.test_package.varchar2_default2).to eq('default')
55
- expect(plsql.test_package.varchar2_default3).to eq('default')
53
+ expect(plsql.test_package.varchar2_default).to eq("default")
54
+ expect(plsql.test_package.varchar2_default2).to eq("default")
55
+ expect(plsql.test_package.varchar2_default3).to eq("default")
56
56
  end
57
57
 
58
58
  describe "with character or byte limit" do
@@ -70,33 +70,33 @@ describe "Package variables /" do
70
70
  end
71
71
 
72
72
  it "should set and get VARCHAR2(n CHAR) variable" do
73
- plsql.test_package.varchar2_3_char = 'āčē'
74
- expect(plsql.test_package.varchar2_3_char).to eq('āčē')
75
- expect { plsql.test_package.varchar2_3_char = 'aceg' }.to raise_error(/buffer too small/)
73
+ plsql.test_package.varchar2_3_char = "āčē"
74
+ expect(plsql.test_package.varchar2_3_char).to eq("āčē")
75
+ expect { plsql.test_package.varchar2_3_char = "aceg" }.to raise_error(/buffer too small/)
76
76
  end
77
77
 
78
78
  it "should set and get VARCHAR2(n BYTE) variable" do
79
- plsql.test_package.varchar2_3_byte = 'ace'
80
- expect(plsql.test_package.varchar2_3_byte).to eq('ace')
81
- expect { plsql.test_package.varchar2_3_byte = 'āce' }.to raise_error(/buffer too small/)
82
- expect { plsql.test_package.varchar2_3_byte = 'aceg' }.to raise_error(/buffer too small/)
79
+ plsql.test_package.varchar2_3_byte = "ace"
80
+ expect(plsql.test_package.varchar2_3_byte).to eq("ace")
81
+ expect { plsql.test_package.varchar2_3_byte = "āce" }.to raise_error(/buffer too small/)
82
+ expect { plsql.test_package.varchar2_3_byte = "aceg" }.to raise_error(/buffer too small/)
83
83
  end
84
84
 
85
85
  end
86
86
 
87
87
  it "should set and get CHAR variable" do
88
- plsql.test_package.char_variable = 'abc'
89
- expect(plsql.test_package.char_variable).to eq('abc' + ' '*7)
88
+ plsql.test_package.char_variable = "abc"
89
+ expect(plsql.test_package.char_variable).to eq("abc" + " " * 7)
90
90
  end
91
91
 
92
92
  it "should set and get NVARCHAR2 variable" do
93
- plsql.test_package.nvarchar2_variable = 'abc'
94
- expect(plsql.test_package.nvarchar2_variable).to eq('abc')
93
+ plsql.test_package.nvarchar2_variable = "abc"
94
+ expect(plsql.test_package.nvarchar2_variable).to eq("abc")
95
95
  end
96
96
 
97
97
  it "should set and get NCHAR variable" do
98
- plsql.test_package.nchar_variable = 'abc'
99
- expect(plsql.test_package.nchar_variable).to eq('abc' + ' '*7)
98
+ plsql.test_package.nchar_variable = "abc"
99
+ expect(plsql.test_package.nchar_variable).to eq("abc" + " " * 7)
100
100
  end
101
101
 
102
102
  end
@@ -134,22 +134,22 @@ describe "Package variables /" do
134
134
  end
135
135
 
136
136
  [
137
- {:ora_data_type => 'INTEGER', :default => nil, :class => Fixnum, :given => 1, :expected => 1},
138
- {:ora_data_type => 'NUMBER(10)', :default => nil, :class => Fixnum, :given => 1, :expected => 1},
139
- {:ora_data_type => 'NUMBER(10)', :default => 5, :class => Fixnum, :given => 1, :expected => 1},
140
- {:ora_data_type => 'NUMBER', :default => nil, :class => BigDecimal, :given => 123.456, :expected => 123.456},
141
- {:ora_data_type => 'NUMBER(15,2)', :default => nil, :class => BigDecimal, :given => 123.456, :expected => 123.46},
142
- {:ora_data_type => 'PLS_INTEGER', :default => nil, :class => Fixnum, :given => 1, :expected => 1},
143
- {:ora_data_type => 'BINARY_INTEGER', :default => nil, :class => Fixnum, :given => 1, :expected => 1},
144
- {:ora_data_type => 'SIMPLE_INTEGER', :default => 10, :class => Fixnum, :given => 1, :expected => 1},
145
- {:ora_data_type => 'NATURAL', :default => nil, :class => Fixnum, :given => 1, :expected => 1},
146
- {:ora_data_type => 'NATURALN', :default => 0, :class => Fixnum, :given => 1, :expected => 1},
147
- {:ora_data_type => 'POSITIVE', :default => nil, :class => Fixnum, :given => 1, :expected => 1},
148
- {:ora_data_type => 'POSITIVEN', :default => 5, :class => Fixnum, :given => 1, :expected => 1},
149
- {:ora_data_type => 'SIGNTYPE', :default => -1, :class => Fixnum, :given => 1, :expected => 1},
137
+ { ora_data_type: "INTEGER", default: nil, class: Integer, given: 1, expected: 1 },
138
+ { ora_data_type: "NUMBER(10)", default: nil, class: Integer, given: 1, expected: 1 },
139
+ { ora_data_type: "NUMBER(10)", default: 5, class: Integer, given: 1, expected: 1 },
140
+ { ora_data_type: "NUMBER", default: nil, class: BigDecimal, given: 123.456, expected: 123.456 },
141
+ { ora_data_type: "NUMBER(15,2)", default: nil, class: BigDecimal, given: 123.456, expected: 123.46 },
142
+ { ora_data_type: "PLS_INTEGER", default: nil, class: Integer, given: 1, expected: 1 },
143
+ { ora_data_type: "BINARY_INTEGER", default: nil, class: Integer, given: 1, expected: 1 },
144
+ { ora_data_type: "SIMPLE_INTEGER", default: 10, class: Integer, given: 1, expected: 1 },
145
+ { ora_data_type: "NATURAL", default: nil, class: Integer, given: 1, expected: 1 },
146
+ { ora_data_type: "NATURALN", default: 0, class: Integer, given: 1, expected: 1 },
147
+ { ora_data_type: "POSITIVE", default: nil, class: Integer, given: 1, expected: 1 },
148
+ { ora_data_type: "POSITIVEN", default: 5, class: Integer, given: 1, expected: 1 },
149
+ { ora_data_type: "SIGNTYPE", default: -1, class: Integer, given: 1, expected: 1 },
150
150
  ].each do |row|
151
151
  ora_data_type, default, class_, given, expected = row.values
152
- describe ora_data_type+(default ? ' with default' : '') do
152
+ describe ora_data_type + (default ? " with default" : "") do
153
153
  include_examples "Numeric", ora_data_type, default, class_, given, expected
154
154
  end
155
155
  end
@@ -170,8 +170,8 @@ describe "Package variables /" do
170
170
  CREATE OR REPLACE PACKAGE BODY test_package IS
171
171
  END;
172
172
  SQL
173
- @date = Time.local(2009,12,21)
174
- @timestamp = Time.local(2009,12,21,14,10,30,11)
173
+ @date = Time.local(2009, 12, 21)
174
+ @timestamp = Time.local(2009, 12, 21, 14, 10, 30, 11)
175
175
  end
176
176
 
177
177
  after(:all) do
@@ -233,17 +233,17 @@ describe "Package variables /" do
233
233
  end
234
234
 
235
235
  it "should set and get CLOB variable" do
236
- plsql.test_package.clob_variable = 'abc'
237
- expect(plsql.test_package.clob_variable).to eq('abc')
236
+ plsql.test_package.clob_variable = "abc"
237
+ expect(plsql.test_package.clob_variable).to eq("abc")
238
238
  end
239
239
 
240
240
  it "should get CLOB variable default value" do
241
- expect(plsql.test_package.clob_default).to eq('default')
241
+ expect(plsql.test_package.clob_default).to eq("default")
242
242
  end
243
243
 
244
244
  it "should set and get NCLOB variable" do
245
- plsql.test_package.nclob_variable = 'abc'
246
- expect(plsql.test_package.nclob_variable).to eq('abc')
245
+ plsql.test_package.nclob_variable = "abc"
246
+ expect(plsql.test_package.nclob_variable).to eq("abc")
247
247
  end
248
248
 
249
249
  it "should set and get BLOB variable" do
@@ -291,12 +291,12 @@ describe "Package variables /" do
291
291
  end
292
292
 
293
293
  it "should set and get VARCHAR2 variable" do
294
- plsql.test_package.first_name = 'First'
295
- expect(plsql.test_package.first_name).to eq('First')
294
+ plsql.test_package.first_name = "First"
295
+ expect(plsql.test_package.first_name).to eq("First")
296
296
  end
297
297
 
298
298
  it "should set and get DATE variable" do
299
- today = Time.local(2009,12,22)
299
+ today = Time.local(2009, 12, 22)
300
300
  plsql.test_package.hire_date = today
301
301
  expect(plsql.test_package.hire_date).to eq(today)
302
302
  end
@@ -329,7 +329,7 @@ describe "Package variables /" do
329
329
  end
330
330
 
331
331
  it "should get VARCHAR2 constant" do
332
- expect(plsql.test_package.string_constant).to eq('constant')
332
+ expect(plsql.test_package.string_constant).to eq("constant")
333
333
  end
334
334
 
335
335
  it "should raise error when trying to set constant" do
@@ -371,14 +371,14 @@ describe "Package variables /" do
371
371
  phones t_phones
372
372
  )
373
373
  SQL
374
- @phones = [{:type => 'mobile', :phone_number => '123456'}, {:type => 'home', :phone_number => '654321'}]
374
+ @phones = [{ type: "mobile", phone_number: "123456" }, { type: "home", phone_number: "654321" }]
375
375
  @employee = {
376
- :employee_id => 1,
377
- :first_name => 'First',
378
- :last_name => 'Last',
379
- :hire_date => Time.local(2000,01,31),
380
- :address => {:street => 'Main street 1', :city => 'Riga', :country => 'Latvia'},
381
- :phones => @phones
376
+ employee_id: 1,
377
+ first_name: "First",
378
+ last_name: "Last",
379
+ hire_date: Time.local(2000, 01, 31),
380
+ address: { street: "Main street 1", city: "Riga", country: "Latvia" },
381
+ phones: @phones
382
382
  }
383
383
 
384
384
  plsql.execute <<-SQL
@@ -433,10 +433,10 @@ describe "Package variables /" do
433
433
  )
434
434
  SQL
435
435
  @employee = {
436
- :employee_id => 1,
437
- :first_name => 'First',
438
- :last_name => 'Last',
439
- :hire_date => Time.local(2000,01,31)
436
+ employee_id: 1,
437
+ first_name: "First",
438
+ last_name: "Last",
439
+ hire_date: Time.local(2000, 01, 31)
440
440
  }
441
441
 
442
442
  plsql.execute <<-SQL
@@ -1,8 +1,8 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "Version" do
4
4
  it "should return ruby-plsql version" do
5
- expect(PLSQL::VERSION).to eq(File.read(File.dirname(__FILE__)+'/../../VERSION').chomp)
5
+ expect(PLSQL::VERSION).to eq(File.read(File.dirname(__FILE__) + "/../../VERSION").chomp)
6
6
  end
7
-
8
- end
7
+
8
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "View" do
4
4
  before(:all) do
@@ -17,18 +17,18 @@ describe "View" do
17
17
 
18
18
  @employees = (1..10).map do |i|
19
19
  {
20
- :employee_id => i,
21
- :first_name => "First #{i}",
22
- :last_name => "Last #{i}",
23
- :hire_date => Time.local(2000,01,i),
24
- :status => 'A'
20
+ employee_id: i,
21
+ first_name: "First #{i}",
22
+ last_name: "Last #{i}",
23
+ hire_date: Time.local(2000, 01, i),
24
+ status: "A"
25
25
  }
26
26
  end
27
27
  @employees_all_fields = [:employee_id, :first_name, :last_name, :hire_date, :status]
28
- @employees_all_values = @employees.map{|e| @employees_all_fields.map{|f| e[f]}}
28
+ @employees_all_values = @employees.map { |e| @employees_all_fields.map { |f| e[f] } }
29
29
  @employees_some_fields = [:employee_id, :first_name, :last_name]
30
- @employees_some_values = @employees.map{|e| @employees_some_fields.map{|f| e[f]}}
31
- @employee_default_values = {:hire_date => nil, :status => 'N'}
30
+ @employees_some_values = @employees.map { |e| @employees_some_fields.map { |f| e[f] } }
31
+ @employee_default_values = { hire_date: nil, status: "N" }
32
32
  end
33
33
 
34
34
  after(:all) do
@@ -96,23 +96,23 @@ describe "View" do
96
96
  end
97
97
 
98
98
  it "should get columns metadata for view" do
99
- expect(plsql.test_employees_v.columns).to eq({
100
- :employee_id => {
101
- :position=>1, :data_type=>"NUMBER", :data_length=>22, :data_precision=>15, :data_scale=>0, :char_used=>nil,
102
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => false, :data_default => nil},
103
- :first_name => {
104
- :position=>2, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
105
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
106
- :last_name => {
107
- :position=>3, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
108
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
109
- :hire_date => {
110
- :position=>4, :data_type=>"DATE", :data_length=>7, :data_precision=>nil, :data_scale=>nil, :char_used=>nil,
111
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
112
- :status => {
113
- :position=>5, :data_type=>"VARCHAR2", :data_length=>1, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
114
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil}
115
- })
99
+ expect(plsql.test_employees_v.columns).to eq(
100
+ employee_id: {
101
+ position: 1, data_type: "NUMBER", data_length: 22, data_precision: 15, data_scale: 0, char_used: nil,
102
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: false, data_default: nil },
103
+ first_name: {
104
+ position: 2, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, char_used: "B",
105
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
106
+ last_name: {
107
+ position: 3, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, char_used: "B",
108
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
109
+ hire_date: {
110
+ position: 4, data_type: "DATE", data_length: 7, data_precision: nil, data_scale: nil, char_used: nil,
111
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
112
+ status: {
113
+ position: 5, data_type: "VARCHAR2", data_length: 1, data_precision: nil, data_scale: nil, char_used: "B",
114
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil }
115
+ )
116
116
  end
117
117
 
118
118
  end
@@ -125,12 +125,12 @@ describe "View" do
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
- expect(plsql.test_employees_v.all).to eq([@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
- expect(plsql.test_employees_v.all).to eq([@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
@@ -168,7 +168,7 @@ describe "View" do
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
- expect(plsql.test_employees_v.all).to eq(@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
@@ -186,13 +186,13 @@ describe "View" do
186
186
  it "should select all records in view" do
187
187
  expect(plsql.test_employees_v.select(:all, "ORDER BY employee_id")).to eq(@employees)
188
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)
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
193
  expect(plsql.test_employees_v.select(:first, "WHERE employee_id = :1", @employees.first[:employee_id])).to eq(@employees.first)
194
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)
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
@@ -201,7 +201,7 @@ describe "View" do
201
201
  employee[:hire_date] = nil
202
202
  plsql.test_employees_v.insert employee
203
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)
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
@@ -220,26 +220,26 @@ describe "View" do
220
220
  it "should update a record in view" do
221
221
  employee_id = @employees.first[:employee_id]
222
222
  plsql.test_employees_v.insert @employees.first
223
- plsql.test_employees_v.update :first_name => 'Test', :where => {:employee_id => employee_id}
224
- expect(plsql.test_employees_v.first(:employee_id => employee_id)[:first_name]).to eq('Test')
223
+ plsql.test_employees_v.update first_name: "Test", where: { employee_id: employee_id }
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
- plsql.test_employees_v.update :first_name => 'Test', :where => "employee_id = #{employee_id}"
231
- expect(plsql.test_employees_v.first(:employee_id => employee_id)[:first_name]).to eq('Test')
230
+ plsql.test_employees_v.update first_name: "Test", where: "employee_id = #{employee_id}"
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
- expect(employee[:first_name]).not_to eq('Test')
234
+ expect(employee[:first_name]).not_to eq("Test")
235
235
  end
236
236
  end
237
237
 
238
238
  it "should update all records in view" do
239
239
  plsql.test_employees_v.insert @employees
240
- plsql.test_employees_v.update :first_name => 'Test'
240
+ plsql.test_employees_v.update first_name: "Test"
241
241
  plsql.test_employees_v.all do |employee|
242
- expect(employee[:first_name]).to eq('Test')
242
+ expect(employee[:first_name]).to eq("Test")
243
243
  end
244
244
  end
245
245
 
@@ -249,9 +249,9 @@ describe "View" do
249
249
  it "should delete record from view" do
250
250
  employee_id = @employees.first[:employee_id]
251
251
  plsql.test_employees_v.insert @employees
252
- plsql.test_employees_v.delete :employee_id => employee_id
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])
252
+ plsql.test_employees_v.delete employee_id: employee_id
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
@@ -1,50 +1,50 @@
1
1
  require "rubygems"
2
2
  require "bundler"
3
3
  Bundler.setup(:default, :development)
4
- require 'simplecov'
4
+ require "simplecov"
5
5
 
6
6
  SimpleCov.configure do
7
- load_profile 'root_filter'
8
- load_profile 'test_frameworks'
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__), '..', 'lib'))
16
- require 'rspec'
15
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
16
+ require "rspec"
17
17
 
18
- unless ENV['NO_ACTIVERECORD']
19
- require 'active_record'
18
+ unless ENV["NO_ACTIVERECORD"]
19
+ require "active_record"
20
20
  else
21
- puts 'Without ActiveRecord'
21
+ puts "Without ActiveRecord"
22
22
  end
23
23
 
24
- require 'ruby-plsql'
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__), 'support/**/*.rb')].each {|f| require f}
28
+ Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each { |f| require f }
29
29
 
30
- if ENV['USE_VM_DATABASE'] == 'Y'
31
- DATABASE_NAME = 'XE'
30
+ if ENV["USE_VM_DATABASE"] == "Y"
31
+ DATABASE_NAME = "XE"
32
32
  else
33
- DATABASE_NAME = ENV['DATABASE_NAME'] || 'orcl'
33
+ DATABASE_NAME = ENV["DATABASE_NAME"] || "orcl"
34
34
  end
35
35
 
36
36
  DATABASE_SERVICE_NAME = (defined?(JRUBY_VERSION) ? "/" : "") +
37
- (ENV['DATABASE_SERVICE_NAME'] || DATABASE_NAME)
38
- DATABASE_HOST = ENV['DATABASE_HOST'] || 'localhost'
39
- DATABASE_PORT = (ENV['DATABASE_PORT'] || 1521).to_i
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['DATABASE_USER'] || 'hr', ENV['DATABASE_PASSWORD'] || 'hr'],
42
- [ENV['DATABASE_USER2'] || 'arunit', ENV['DATABASE_PASSWORD2'] || 'arunit']
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['DATABASE_VERSION'] || '10.2.0.4'
45
+ DATABASE_VERSION = ENV["DATABASE_VERSION"] || "10.2.0.4"
46
46
 
47
- if ENV['USE_VM_DATABASE'] == 'Y'
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['DATABASE_USE_TNS'] == 'NO') ? get_eazy_connect_url("/") : DATABASE_NAME
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
@@ -94,20 +102,20 @@ def try_to_connect(exception)
94
102
  end
95
103
 
96
104
  CONNECTION_PARAMS = {
97
- :adapter => "oracle_enhanced",
98
- :database => DATABASE_SERVICE_NAME,
99
- :host => DATABASE_HOST,
100
- :port => DATABASE_PORT,
101
- :username => DATABASE_USERS_AND_PASSWORDS[0][0],
102
- :password => DATABASE_USERS_AND_PASSWORDS[0][1]
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