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,15 +1,15 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "Schema" do
4
-
4
+
5
5
  it "should create Schema object" do
6
6
  expect(plsql.class).to eq(PLSQL::Schema)
7
7
  end
8
-
8
+
9
9
  end
10
10
 
11
11
  describe "Schema connection" do
12
-
12
+
13
13
  before(:each) do
14
14
  @conn = get_connection
15
15
  end
@@ -31,13 +31,13 @@ describe "Schema connection" do
31
31
  plsql(:hr).connection = @conn
32
32
  expect(plsql(:hr).connection.raw_connection).to eq(@conn)
33
33
  end
34
-
34
+
35
35
  it "should return schema name" do
36
36
  plsql.connection = @conn
37
37
  expect(plsql.schema_name).to eq(DATABASE_USERS_AND_PASSWORDS[0][0].upcase)
38
38
  end
39
39
 
40
- it 'should match altered current_schema in database session' do
40
+ it "should match altered current_schema in database session" do
41
41
  plsql.connection = @conn
42
42
  expected_current_schema = DATABASE_USERS_AND_PASSWORDS[1][0]
43
43
  plsql.execute "ALTER SESSION set current_schema=#{expected_current_schema}"
@@ -78,39 +78,38 @@ describe "Connection with connect!" do
78
78
  end
79
79
 
80
80
  it "should connect with username, password, host, port and database name" do
81
- plsql.connect! @username, @password, :host => @host, :port => @port, :database => @database_service
81
+ plsql.connect! @username, @password, host: @host, port: @port, database: @database_service
82
82
  expect(plsql.connection).not_to be_nil
83
83
  expect(plsql.schema_name).to eq(@username.upcase)
84
84
  end
85
85
 
86
86
  it "should connect with username, password, host, database name and default port" do
87
87
  skip "Non-default port used for test database" unless @port == 1521
88
- plsql.connect! @username, @password, :host => @host, :database => @database_service
88
+ plsql.connect! @username, @password, host: @host, database: @database_service
89
89
  expect(plsql.connection).not_to be_nil
90
90
  expect(plsql.schema_name).to eq(@username.upcase)
91
91
  end
92
92
 
93
93
  it "should not connect with wrong port number" do
94
94
  expect {
95
- plsql.connect! @username, @password, :host => @host, :port => 9999, :database => @database
95
+ plsql.connect! @username, @password, host: @host, port: 9999, database: @database
96
96
  }.to raise_error(/ORA-12541|could not establish the connection/)
97
97
  end
98
98
 
99
99
  it "should connect with one Hash parameter" do
100
- plsql.connect! :username => @username, :password => @password, :database => @database
100
+ plsql.connect! username: @username, password: @password, database: @database
101
101
  expect(plsql.connection).not_to be_nil
102
102
  expect(plsql.schema_name).to eq(@username.upcase)
103
103
  end
104
104
 
105
105
  it "should set session time zone from ORA_SDTZ environment variable" do
106
106
  plsql.connect! @username, @password, @database
107
- expect(plsql.connection.time_zone).to eq(ENV['ORA_SDTZ'])
108
- end if ENV['ORA_SDTZ']
109
-
107
+ expect(plsql.connection.time_zone).to eq(ENV["ORA_SDTZ"])
108
+ end if ENV["ORA_SDTZ"]
110
109
 
111
110
  it "should set session time zone from :time_zone parameter" do
112
- plsql.connect! :username => @username, :password => @password, :database => @database, :time_zone => 'EET'
113
- expect(plsql.connection.time_zone).to eq('EET')
111
+ plsql.connect! username: @username, password: @password, database: @database, time_zone: "EET"
112
+ expect(plsql.connection.time_zone).to eq("EET")
114
113
  end
115
114
 
116
115
  end
@@ -133,7 +132,7 @@ describe "Named Schema" do
133
132
  end
134
133
 
135
134
  it "should return schema name" do
136
- expect(plsql.hr.schema_name).to eq('HR')
135
+ expect(plsql.hr.schema_name).to eq("HR")
137
136
  end
138
137
 
139
138
  it "should not find named schema if specified twice" do
@@ -147,8 +146,8 @@ describe "Schema commit and rollback" do
147
146
  plsql.connection = @conn = get_connection
148
147
  plsql.connection.autocommit = false
149
148
  plsql.execute "CREATE TABLE test_commit (dummy VARCHAR2(100))"
150
- @data = {:dummy => 'test'}
151
- @data2 = {:dummy => 'test2'}
149
+ @data = { dummy: "test" }
150
+ @data2 = { dummy: "test2" }
152
151
  end
153
152
 
154
153
  after(:all) do
@@ -175,10 +174,10 @@ describe "Schema commit and rollback" do
175
174
 
176
175
  it "should create savepoint and rollback to savepoint" do
177
176
  plsql.test_commit.insert @data
178
- plsql.savepoint 'test'
177
+ plsql.savepoint "test"
179
178
  plsql.test_commit.insert @data2
180
179
  expect(plsql.test_commit.all).to eq([@data, @data2])
181
- plsql.rollback_to 'test'
180
+ plsql.rollback_to "test"
182
181
  expect(plsql.test_commit.all).to eq([@data])
183
182
  end
184
183
 
@@ -207,7 +206,7 @@ describe "ActiveRecord connection" do
207
206
  end
208
207
 
209
208
  it "should return schema name" do
210
- expect(plsql.schema_name).to eq('HR')
209
+ expect(plsql.schema_name).to eq("HR")
211
210
  end
212
211
 
213
212
  it "should use ActiveRecord::Base.default_timezone as default" do
@@ -221,12 +220,12 @@ describe "ActiveRecord connection" do
221
220
 
222
221
  it "should accept inherited ActiveRecord class" do
223
222
  plsql.activerecord_class = TestBaseModel
224
- expect(plsql.schema_name).to eq('HR')
223
+ expect(plsql.schema_name).to eq("HR")
225
224
  end
226
225
 
227
226
  it "should accept subclass of inherited ActiveRecord class" do
228
227
  plsql.activerecord_class = TestModel
229
- expect(plsql.schema_name).to eq('HR')
228
+ expect(plsql.schema_name).to eq("HR")
230
229
  end
231
230
 
232
231
  it "should safely close cursors in threaded environment" do
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "Table" do
4
4
  before(:all) do
@@ -64,4 +64,4 @@ describe "Table" do
64
64
  end
65
65
  end
66
66
 
67
- end
67
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "SQL statements /" do
4
4
  before(:all) do
@@ -35,10 +35,10 @@ describe "SQL statements /" do
35
35
  SQL
36
36
  @employees = (1..10).map do |i|
37
37
  {
38
- :employee_id => i,
39
- :first_name => "First #{i}",
40
- :last_name => "Last #{i}",
41
- :hire_date => Time.local(2000,01,i)
38
+ employee_id: i,
39
+ first_name: "First #{i}",
40
+ last_name: "Last #{i}",
41
+ hire_date: Time.local(2000, 01, i)
42
42
  }
43
43
  end
44
44
  plsql.connection.prefetch_rows = 100
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "Table" do
4
4
  before(:all) do
@@ -43,28 +43,28 @@ describe "Table" do
43
43
  SQL
44
44
  @employees = (1..10).map do |i|
45
45
  {
46
- :employee_id => i,
47
- :first_name => "First #{i}",
48
- :last_name => "Last #{i}",
49
- :hire_date => Time.local(2000,01,i),
50
- :created_at => Time.local(2000,01,i,9,15,30,i),
51
- :status => 'A'
46
+ employee_id: i,
47
+ first_name: "First #{i}",
48
+ last_name: "Last #{i}",
49
+ hire_date: Time.local(2000, 01, i),
50
+ created_at: Time.local(2000, 01, i, 9, 15, 30, i),
51
+ status: "A"
52
52
  }
53
53
  end
54
54
  @employees_all_fields = [:employee_id, :first_name, :last_name, :hire_date, :created_at, :status]
55
- @employees_all_values = @employees.map{|e| @employees_all_fields.map{|f| e[f]}}
55
+ @employees_all_values = @employees.map { |e| @employees_all_fields.map { |f| e[f] } }
56
56
  @employees_some_fields = [:employee_id, :first_name, :last_name]
57
- @employees_some_values = @employees.map{|e| @employees_some_fields.map{|f| e[f]}}
58
- @employee_default_values = {:hire_date => nil, :created_at => nil, :status => 'N'}
57
+ @employees_some_values = @employees.map { |e| @employees_some_fields.map { |f| e[f] } }
58
+ @employee_default_values = { hire_date: nil, created_at: nil, status: "N" }
59
59
 
60
60
  @employees2 = (1..10).map do |i|
61
61
  {
62
- :employee_id => i,
63
- :first_name => "First #{i}",
64
- :last_name => "Last #{i}",
65
- :hire_date => Time.local(2000,01,i),
66
- :address => {:street => "Street #{i}", :city => "City #{i}", :country => "County #{i}"},
67
- :phones => [{:type => "mobile", :phone_number => "Mobile#{i}"}, {:type => "fixed", :phone_number => "Fixed#{i}"}]
62
+ employee_id: i,
63
+ first_name: "First #{i}",
64
+ last_name: "Last #{i}",
65
+ hire_date: Time.local(2000, 01, i),
66
+ address: { street: "Street #{i}", city: "City #{i}", country: "County #{i}" },
67
+ phones: [{ type: "mobile", phone_number: "Mobile#{i}" }, { type: "fixed", phone_number: "Fixed#{i}" }]
68
68
  }
69
69
  end
70
70
  end
@@ -137,49 +137,49 @@ describe "Table" do
137
137
  end
138
138
 
139
139
  it "should get columns metadata for table" do
140
- expect(plsql.test_employees.columns).to eq({
141
- :employee_id => {
142
- :position=>1, :data_type=>"NUMBER", :data_length=>22, :data_precision=>15, :data_scale=>0, :char_used=>nil,
143
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => false, :data_default => nil},
144
- :first_name => {
145
- :position=>2, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
146
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
147
- :last_name => {
148
- :position=>3, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
149
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
150
- :hire_date => {
151
- :position=>4, :data_type=>"DATE", :data_length=>7, :data_precision=>nil, :data_scale=>nil, :char_used=>nil,
152
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
153
- :created_at => {
154
- :position=>5, :data_type=>"TIMESTAMP", :data_length=>11, :data_precision=>nil, :data_scale=>6, :char_used=>nil,
155
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
156
- :status => {
157
- :position=>6, :data_type=>"VARCHAR2", :data_length=>1, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
158
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => "'N'"}
159
- })
140
+ expect(plsql.test_employees.columns).to eq(
141
+ employee_id: {
142
+ position: 1, data_type: "NUMBER", data_length: 22, data_precision: 15, data_scale: 0, char_used: nil,
143
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: false, data_default: nil },
144
+ first_name: {
145
+ position: 2, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, char_used: "B",
146
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
147
+ last_name: {
148
+ position: 3, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, char_used: "B",
149
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
150
+ hire_date: {
151
+ position: 4, data_type: "DATE", data_length: 7, data_precision: nil, data_scale: nil, char_used: nil,
152
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
153
+ created_at: {
154
+ position: 5, data_type: "TIMESTAMP", data_length: 11, data_precision: nil, data_scale: 6, char_used: nil,
155
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
156
+ status: {
157
+ position: 6, data_type: "VARCHAR2", data_length: 1, data_precision: nil, data_scale: nil, char_used: "B",
158
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: "'N'" }
159
+ )
160
160
  end
161
161
 
162
162
  it "should get columns metadata for table with object columns" do
163
- expect(plsql.test_employees2.columns).to eq({
164
- :employee_id => {
165
- :position=>1, :data_type=>"NUMBER", :data_length=>22, :data_precision=>15, :data_scale=>0, :char_used=>nil,
166
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => false, :data_default => nil},
167
- :first_name => {
168
- :position=>2, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
169
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
170
- :last_name => {
171
- :position=>3, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
172
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil},
173
- :hire_date => {
174
- :position=>4, :data_type=>"DATE", :data_length=>7, :data_precision=>nil, :data_scale=>nil, :char_used=>nil,
175
- :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => "SYSDATE"},
176
- :address => {
177
- :position=>5, :data_type=>"OBJECT", :data_length=>nil, :data_precision=>nil, :data_scale=>nil,
178
- :char_used=>nil, :type_owner=>"HR", :type_name=>"T_ADDRESS", :sql_type_name=>"HR.T_ADDRESS", :nullable => true, :data_default => nil},
179
- :phones => {
180
- :position=>6, :data_type=>"TABLE", :data_length=>nil, :data_precision=>nil, :data_scale=>nil, :char_used=>nil,
181
- :type_owner=>"HR", :type_name=>"T_PHONES", :sql_type_name=>"HR.T_PHONES", :nullable => true, :data_default => nil}
182
- })
163
+ expect(plsql.test_employees2.columns).to eq(
164
+ employee_id: {
165
+ position: 1, data_type: "NUMBER", data_length: 22, data_precision: 15, data_scale: 0, char_used: nil,
166
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: false, data_default: nil },
167
+ first_name: {
168
+ position: 2, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, char_used: "B",
169
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
170
+ last_name: {
171
+ position: 3, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, char_used: "B",
172
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: nil },
173
+ hire_date: {
174
+ position: 4, data_type: "DATE", data_length: 7, data_precision: nil, data_scale: nil, char_used: nil,
175
+ type_owner: nil, type_name: nil, sql_type_name: nil, nullable: true, data_default: "SYSDATE" },
176
+ address: {
177
+ position: 5, data_type: "OBJECT", data_length: nil, data_precision: nil, data_scale: nil,
178
+ char_used: nil, type_owner: "HR", type_name: "T_ADDRESS", sql_type_name: "HR.T_ADDRESS", nullable: true, data_default: nil },
179
+ phones: {
180
+ position: 6, data_type: "TABLE", data_length: nil, data_precision: nil, data_scale: nil, char_used: nil,
181
+ type_owner: "HR", type_name: "T_PHONES", sql_type_name: "HR.T_PHONES", nullable: true, data_default: nil }
182
+ )
183
183
  end
184
184
 
185
185
  end
@@ -192,12 +192,12 @@ describe "Table" do
192
192
 
193
193
  it "should insert a record in table using partial list of columns" do
194
194
  plsql.test_employees.insert @employees.first.except(:hire_date)
195
- expect(plsql.test_employees.all).to eq([@employees.first.merge(:hire_date => nil)])
195
+ expect(plsql.test_employees.all).to eq([@employees.first.merge(hire_date: nil)])
196
196
  end
197
197
 
198
198
  it "should insert default value from table definition if value not provided" do
199
199
  plsql.test_employees.insert @employees.first.except(:status)
200
- expect(plsql.test_employees.all).to eq([@employees.first.merge(:status => 'N')])
200
+ expect(plsql.test_employees.all).to eq([@employees.first.merge(status: "N")])
201
201
  end
202
202
 
203
203
  it "should insert array of records in table" do
@@ -245,7 +245,7 @@ describe "Table" do
245
245
 
246
246
  it "should insert many records with list of some fields and array of values" do
247
247
  plsql.test_employees.insert_values @employees_some_fields, *@employees_some_values
248
- expect(plsql.test_employees.all).to eq(@employees.map{|e| e.merge(@employee_default_values)})
248
+ expect(plsql.test_employees.all).to eq(@employees.map { |e| e.merge(@employee_default_values) })
249
249
  end
250
250
 
251
251
  end
@@ -263,17 +263,17 @@ describe "Table" do
263
263
  it "should select all records in table" do
264
264
  expect(plsql.test_employees.select(:all, "ORDER BY employee_id")).to eq(@employees)
265
265
  expect(plsql.test_employees.all("ORDER BY employee_id")).to eq(@employees)
266
- expect(plsql.test_employees.all(:order_by => :employee_id)).to eq(@employees)
266
+ expect(plsql.test_employees.all(order_by: :employee_id)).to eq(@employees)
267
267
  end
268
268
 
269
269
  it "should select record in table using WHERE condition" do
270
270
  expect(plsql.test_employees.select(:first, "WHERE employee_id = :1", @employees.first[:employee_id])).to eq(@employees.first)
271
271
  expect(plsql.test_employees.first("WHERE employee_id = :1", @employees.first[:employee_id])).to eq(@employees.first)
272
- expect(plsql.test_employees.first(:employee_id => @employees.first[:employee_id])).to eq(@employees.first)
272
+ expect(plsql.test_employees.first(employee_id: @employees.first[:employee_id])).to eq(@employees.first)
273
273
  end
274
274
 
275
275
  it "should select records in table using WHERE condition and ORDER BY sorting" do
276
- expect(plsql.test_employees.all(:employee_id => @employees.first[:employee_id], :order_by => :employee_id)).to eq([@employees.first])
276
+ expect(plsql.test_employees.all(employee_id: @employees.first[:employee_id], order_by: :employee_id)).to eq([@employees.first])
277
277
  end
278
278
 
279
279
  it "should select record in table using :column => nil condition" do
@@ -282,7 +282,7 @@ describe "Table" do
282
282
  employee[:hire_date] = nil
283
283
  plsql.test_employees.insert employee
284
284
  expect(plsql.test_employees.first("WHERE hire_date IS NULL")).to eq(employee)
285
- expect(plsql.test_employees.first(:hire_date => nil)).to eq(employee)
285
+ expect(plsql.test_employees.first(hire_date: nil)).to eq(employee)
286
286
  end
287
287
 
288
288
  it "should select record in table using :column => :is_null condition" do
@@ -290,7 +290,7 @@ describe "Table" do
290
290
  employee[:employee_id] = employee[:employee_id] + 1
291
291
  employee[:hire_date] = nil
292
292
  plsql.test_employees.insert employee
293
- expect(plsql.test_employees.first(:hire_date => :is_null)).to eq(employee)
293
+ expect(plsql.test_employees.first(hire_date: :is_null)).to eq(employee)
294
294
  end
295
295
 
296
296
  it "should select record in table using :column => :is_not_null condition" do
@@ -298,7 +298,7 @@ describe "Table" do
298
298
  employee[:employee_id] = employee[:employee_id] + 1
299
299
  employee[:hire_date] = nil
300
300
  plsql.test_employees.insert employee
301
- expect(plsql.test_employees.all(:hire_date => :is_not_null, :order_by => :employee_id)).to eq(@employees)
301
+ expect(plsql.test_employees.all(hire_date: :is_not_null, order_by: :employee_id)).to eq(@employees)
302
302
  end
303
303
 
304
304
  it "should count records in table" do
@@ -317,26 +317,26 @@ describe "Table" do
317
317
  it "should update a record in table" do
318
318
  employee_id = @employees.first[:employee_id]
319
319
  plsql.test_employees.insert @employees.first
320
- plsql.test_employees.update :first_name => 'Test', :where => {:employee_id => employee_id}
321
- expect(plsql.test_employees.first(:employee_id => employee_id)[:first_name]).to eq('Test')
320
+ plsql.test_employees.update first_name: "Test", where: { employee_id: employee_id }
321
+ expect(plsql.test_employees.first(employee_id: employee_id)[:first_name]).to eq("Test")
322
322
  end
323
323
 
324
324
  it "should update a record in table using String WHERE condition" do
325
325
  employee_id = @employees.first[:employee_id]
326
326
  plsql.test_employees.insert @employees
327
- plsql.test_employees.update :first_name => 'Test', :where => "employee_id = #{employee_id}"
328
- expect(plsql.test_employees.first(:employee_id => employee_id)[:first_name]).to eq('Test')
327
+ plsql.test_employees.update first_name: "Test", where: "employee_id = #{employee_id}"
328
+ expect(plsql.test_employees.first(employee_id: employee_id)[:first_name]).to eq("Test")
329
329
  # all other records should not be changed
330
330
  plsql.test_employees.all("WHERE employee_id > :1", employee_id) do |employee|
331
- expect(employee[:first_name]).not_to eq('Test')
331
+ expect(employee[:first_name]).not_to eq("Test")
332
332
  end
333
333
  end
334
334
 
335
335
  it "should update all records in table" do
336
336
  plsql.test_employees.insert @employees
337
- plsql.test_employees.update :first_name => 'Test'
337
+ plsql.test_employees.update first_name: "Test"
338
338
  plsql.test_employees.all do |employee|
339
- expect(employee[:first_name]).to eq('Test')
339
+ expect(employee[:first_name]).to eq("Test")
340
340
  end
341
341
  end
342
342
 
@@ -344,8 +344,8 @@ describe "Table" do
344
344
  employee = @employees2[0]
345
345
  employee2 = @employees2[1]
346
346
  plsql.test_employees2.insert employee
347
- plsql.test_employees2.update :address => employee2[:address], :phones => employee2[:phones], :where => {:employee_id => employee[:employee_id]}
348
- updated_employee = plsql.test_employees2.first(:employee_id => employee[:employee_id])
347
+ plsql.test_employees2.update address: employee2[:address], phones: employee2[:phones], where: { employee_id: employee[:employee_id] }
348
+ updated_employee = plsql.test_employees2.first(employee_id: employee[:employee_id])
349
349
  expect(updated_employee[:address]).to eq(employee2[:address])
350
350
  expect(updated_employee[:phones]).to eq(employee2[:phones])
351
351
  end
@@ -356,9 +356,9 @@ describe "Table" do
356
356
  it "should delete record from table" do
357
357
  employee_id = @employees.first[:employee_id]
358
358
  plsql.test_employees.insert @employees
359
- plsql.test_employees.delete :employee_id => employee_id
360
- expect(plsql.test_employees.first(:employee_id => employee_id)).to be_nil
361
- expect(plsql.test_employees.all(:order_by => :employee_id)).to eq(@employees[1, @employees.size-1])
359
+ plsql.test_employees.delete employee_id: employee_id
360
+ expect(plsql.test_employees.first(employee_id: employee_id)).to be_nil
361
+ expect(plsql.test_employees.all(order_by: :employee_id)).to eq(@employees[1, @employees.size - 1])
362
362
  end
363
363
 
364
364
  it "should delete all records from table" do
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "Type" do
4
4
  before(:all) do
@@ -167,28 +167,22 @@ describe "Type" do
167
167
  end
168
168
 
169
169
  it "should get attributes metadata" do
170
- expect(plsql.t_employee.attributes).to eq({
171
- :employee_id =>
172
- {:position=>1, :data_type=>"NUMBER", :data_length=>nil, :data_precision=>15, :data_scale=>0, :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil},
173
- :first_name =>
174
- {:position=>2, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil},
175
- :last_name =>
176
- {:position=>3, :data_type=>"VARCHAR2", :data_length=>50, :data_precision=>nil, :data_scale=>nil, :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil},
177
- :hire_date =>
178
- {:position=>4, :data_type=>"DATE", :data_length=>nil, :data_precision=>nil, :data_scale=>nil, :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil},
179
- :address =>
180
- {:position=>5, :data_type=>"OBJECT", :data_length=>nil, :data_precision=>nil, :data_scale=>nil, :type_owner=>"HR", :type_name=>"T_ADDRESS", :sql_type_name=>"HR.T_ADDRESS"},
181
- :phones =>
182
- {:position=>6, :data_type=>"TABLE", :data_length=>nil, :data_precision=>nil, :data_scale=>nil, :type_owner=>"HR", :type_name=>"T_PHONES", :sql_type_name=>"HR.T_PHONES"}
183
- })
170
+ expect(plsql.t_employee.attributes).to eq(
171
+ employee_id: { position: 1, data_type: "NUMBER", data_length: nil, data_precision: 15, data_scale: 0, type_owner: nil, type_name: nil, sql_type_name: nil },
172
+ first_name: { position: 2, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, type_owner: nil, type_name: nil, sql_type_name: nil },
173
+ last_name: { position: 3, data_type: "VARCHAR2", data_length: 50, data_precision: nil, data_scale: nil, type_owner: nil, type_name: nil, sql_type_name: nil },
174
+ hire_date: { position: 4, data_type: "DATE", data_length: nil, data_precision: nil, data_scale: nil, type_owner: nil, type_name: nil, sql_type_name: nil },
175
+ address: { position: 5, data_type: "OBJECT", data_length: nil, data_precision: nil, data_scale: nil, type_owner: "HR", type_name: "T_ADDRESS", sql_type_name: "HR.T_ADDRESS" },
176
+ phones: { position: 6, data_type: "TABLE", data_length: nil, data_precision: nil, data_scale: nil, type_owner: "HR", type_name: "T_PHONES", sql_type_name: "HR.T_PHONES" }
177
+ )
184
178
  end
185
179
 
186
180
  end
187
181
 
188
182
  describe "object instance" do
189
183
  before(:all) do
190
- @phone_attributes = {:type => 'mobile', :phone_number => '123456'}
191
- @address_attributes = {:street => 'Street', :city => 'City', :country => 'Country'}
184
+ @phone_attributes = { type: "mobile", phone_number: "123456" }
185
+ @address_attributes = { street: "Street", city: "City", country: "Country" }
192
186
  @full_address = "#{@address_attributes[:street]}, #{@address_attributes[:city]}, #{@address_attributes[:country]}"
193
187
  end
194
188
 
@@ -206,7 +200,7 @@ describe "Type" do
206
200
 
207
201
  it "should get new object instance using custom constructor" do
208
202
  expect(plsql.t_address(@full_address)).to eq(@address_attributes)
209
- expect(plsql.t_address(:p_full_address => @full_address)).to eq(@address_attributes)
203
+ expect(plsql.t_address(p_full_address: @full_address)).to eq(@address_attributes)
210
204
  end
211
205
 
212
206
  it "should get new object instance using default constructor when custom constructor exists" do
@@ -230,7 +224,7 @@ describe "Type" do
230
224
 
231
225
  describe "member procedures" do
232
226
  before(:all) do
233
- @address_attributes = {:street => 'Street', :city => 'City', :country => 'Country'}
227
+ @address_attributes = { street: "Street", city: "City", country: "Country" }
234
228
  @full_address = "#{@address_attributes[:street]}, #{@address_attributes[:city]}, #{@address_attributes[:country]}"
235
229
  end
236
230
 
@@ -239,36 +233,36 @@ describe "Type" do
239
233
  end
240
234
 
241
235
  it "should call object instance member function with parameters" do
242
- expect(plsql.t_address(@address_attributes).display_address(',')).to eq(@full_address)
236
+ expect(plsql.t_address(@address_attributes).display_address(",")).to eq(@full_address)
243
237
  end
244
238
 
245
239
  it "should call object instance member function with named parameters" do
246
- expect(plsql.t_address(@address_attributes).display_address(:p_separator => ',')).to eq(@full_address)
240
+ expect(plsql.t_address(@address_attributes).display_address(p_separator: ",")).to eq(@full_address)
247
241
  end
248
242
 
249
243
  it "should call object overloaded instance member function" do
250
244
  expect(plsql.t_address(@address_attributes).display_address(true)).to eq(@full_address.upcase)
251
- expect(plsql.t_address(@address_attributes).display_address(true, ',')).to eq(@full_address.upcase)
245
+ expect(plsql.t_address(@address_attributes).display_address(true, ",")).to eq(@full_address.upcase)
252
246
  end
253
247
 
254
248
  it "should call object instance member function with explicit first SELF parameter" do
255
- expect(plsql.t_address.display_address(@address_attributes, ',')).to eq(@full_address)
249
+ expect(plsql.t_address.display_address(@address_attributes, ",")).to eq(@full_address)
256
250
  end
257
251
 
258
252
  it "should call object instance member function with explicit named SELF parameter" do
259
- expect(plsql.t_address.display_address(:self => @address_attributes, :p_separator => ',')).to eq(@full_address)
253
+ expect(plsql.t_address.display_address(self: @address_attributes, p_separator: ",")).to eq(@full_address)
260
254
  end
261
255
 
262
256
  it "should call object instance member procedure" do
263
257
  other_country = "Other"
264
- expect(plsql.t_address(@address_attributes).set_country(other_country)).to eq(@address_attributes.merge(:country => other_country))
258
+ expect(plsql.t_address(@address_attributes).set_country(other_country)).to eq(@address_attributes.merge(country: other_country))
265
259
  end
266
260
 
267
261
  it "should call object instance member procedure with output parameters" do
268
262
  other_country = "Other"
269
263
  expect(plsql.t_address(@address_attributes).set_country2(other_country)).to eq(
270
- [@address_attributes.merge(:country => other_country),
271
- {:x_display_address => "#{@address_attributes[:street]}, #{@address_attributes[:city]}, #{other_country}"}]
264
+ [@address_attributes.merge(country: other_country),
265
+ { x_display_address: "#{@address_attributes[:street]}, #{@address_attributes[:city]}, #{other_country}" }]
272
266
  )
273
267
  end
274
268
 
@@ -282,7 +276,7 @@ describe "Type" do
282
276
 
283
277
  describe "static procedures" do
284
278
  before(:all) do
285
- @address_attributes = {:street => 'Street', :city => 'City', :country => 'Country'}
279
+ @address_attributes = { street: "Street", city: "City", country: "Country" }
286
280
  @full_address = "#{@address_attributes[:street]}, #{@address_attributes[:city]}, #{@address_attributes[:country]}"
287
281
  end
288
282
 
@@ -291,7 +285,7 @@ describe "Type" do
291
285
  end
292
286
 
293
287
  it "should call object type static function with named parameters" do
294
- expect(plsql.t_address.create_address(:p_full_address => @full_address)).to eq(@address_attributes)
288
+ expect(plsql.t_address.create_address(p_full_address: @full_address)).to eq(@address_attributes)
295
289
  end
296
290
 
297
291
  it "should raise error if invalid static procedure is called" do