dbview_cti 0.2.1 → 0.2.2

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.
Files changed (74) hide show
  1. checksums.yaml +5 -13
  2. data/.travis.yml +6 -5
  3. data/CHANGELOG.md +4 -0
  4. data/Gemfile +1 -0
  5. data/README.md +1 -1
  6. data/dbview_cti.gemspec +1 -1
  7. data/lib/db_view_cti/model/cti/associations.rb +3 -1
  8. data/lib/db_view_cti/model/cti/destroy.rb +10 -3
  9. data/lib/db_view_cti/schema_dumper.rb +2 -1
  10. data/lib/db_view_cti/version.rb +1 -1
  11. data/spec/dummy-rails-4/config/environments/test.rb +1 -1
  12. data/spec/dummy-rails-5/Rakefile +6 -0
  13. data/spec/dummy-rails-5/app/assets/config/manifest.js +4 -0
  14. data/spec/dummy-rails-5/app/assets/images/.keep +0 -0
  15. data/spec/dummy-rails-5/app/assets/javascripts/application.js +13 -0
  16. data/spec/dummy-rails-5/app/assets/javascripts/cable.js +13 -0
  17. data/spec/dummy-rails-5/app/assets/javascripts/channels/.keep +0 -0
  18. data/spec/dummy-rails-5/app/assets/stylesheets/application.css +15 -0
  19. data/spec/dummy-rails-5/app/channels/application_cable/channel.rb +4 -0
  20. data/spec/dummy-rails-5/app/channels/application_cable/connection.rb +4 -0
  21. data/spec/dummy-rails-5/app/controllers/application_controller.rb +3 -0
  22. data/spec/dummy-rails-5/app/controllers/concerns/.keep +0 -0
  23. data/spec/dummy-rails-5/app/helpers/application_helper.rb +2 -0
  24. data/spec/dummy-rails-5/app/jobs/application_job.rb +2 -0
  25. data/spec/dummy-rails-5/app/mailers/application_mailer.rb +4 -0
  26. data/spec/dummy-rails-5/app/models.original/application_record.rb +3 -0
  27. data/spec/dummy-rails-5/app/models.original/concerns/.keep +0 -0
  28. data/spec/dummy-rails-5/app/views/layouts/application.html.erb +14 -0
  29. data/spec/dummy-rails-5/app/views/layouts/mailer.html.erb +13 -0
  30. data/spec/dummy-rails-5/app/views/layouts/mailer.text.erb +1 -0
  31. data/spec/dummy-rails-5/bin/bundle +3 -0
  32. data/spec/dummy-rails-5/bin/rails +4 -0
  33. data/spec/dummy-rails-5/bin/rake +4 -0
  34. data/spec/dummy-rails-5/bin/setup +34 -0
  35. data/spec/dummy-rails-5/bin/update +29 -0
  36. data/spec/dummy-rails-5/config/application.rb +20 -0
  37. data/spec/dummy-rails-5/config/boot.rb +5 -0
  38. data/spec/dummy-rails-5/config/cable.yml +9 -0
  39. data/spec/dummy-rails-5/config/database.yml +24 -0
  40. data/spec/dummy-rails-5/config/environment.rb +5 -0
  41. data/spec/dummy-rails-5/config/environments/development.rb +54 -0
  42. data/spec/dummy-rails-5/config/environments/production.rb +86 -0
  43. data/spec/dummy-rails-5/config/environments/test.rb +42 -0
  44. data/spec/dummy-rails-5/config/initializers/application_controller_renderer.rb +6 -0
  45. data/spec/dummy-rails-5/config/initializers/assets.rb +11 -0
  46. data/spec/dummy-rails-5/config/initializers/backtrace_silencers.rb +7 -0
  47. data/spec/dummy-rails-5/config/initializers/cookies_serializer.rb +5 -0
  48. data/spec/dummy-rails-5/config/initializers/dbview_cti.rb +8 -0
  49. data/spec/dummy-rails-5/config/initializers/filter_parameter_logging.rb +4 -0
  50. data/spec/dummy-rails-5/config/initializers/inflections.rb +16 -0
  51. data/spec/dummy-rails-5/config/initializers/mime_types.rb +4 -0
  52. data/spec/dummy-rails-5/config/initializers/new_framework_defaults.rb +24 -0
  53. data/spec/dummy-rails-5/config/initializers/session_store.rb +3 -0
  54. data/spec/dummy-rails-5/config/initializers/wrap_parameters.rb +14 -0
  55. data/spec/dummy-rails-5/config/locales/en.yml +23 -0
  56. data/spec/dummy-rails-5/config/puma.rb +47 -0
  57. data/spec/dummy-rails-5/config/routes.rb +3 -0
  58. data/spec/dummy-rails-5/config/secrets.yml +22 -0
  59. data/spec/dummy-rails-5/config/spring.rb +6 -0
  60. data/spec/dummy-rails-5/config.ru +5 -0
  61. data/spec/dummy-rails-5/lib/assets/.keep +0 -0
  62. data/spec/dummy-rails-5/log/.keep +0 -0
  63. data/spec/dummy-rails-5/public/404.html +67 -0
  64. data/spec/dummy-rails-5/public/422.html +67 -0
  65. data/spec/dummy-rails-5/public/500.html +66 -0
  66. data/spec/dummy-rails-5/public/apple-touch-icon-precomposed.png +0 -0
  67. data/spec/dummy-rails-5/public/apple-touch-icon.png +0 -0
  68. data/spec/dummy-rails-5/public/favicon.ico +0 -0
  69. data/spec/models/car_spec.rb +20 -20
  70. data/spec/models/motor_vehicle_spec.rb +9 -9
  71. data/spec/models/space_shuttle_spec.rb +52 -52
  72. data/spec/models/vehicle_spec.rb +24 -24
  73. data/spec/spec_helper.rb +11 -1
  74. metadata +72 -15
@@ -11,12 +11,12 @@ describe SpaceShuttle do
11
11
  :space_ship_id => shuttle.convert_to(:space_ship).id)
12
12
  expect {
13
13
  shuttle.destroy
14
- }.to raise_error
14
+ }.to raise_error(ActiveRecord::InvalidForeignKey)
15
15
  end
16
16
 
17
17
  it "stores attributes that were added to ascendant classes after initial creation of the tables" do
18
18
  shuttle = SpaceShuttle.create(:name => 'Discovery', :reliability => 100)
19
- shuttle.convert_to(:space_ship).reliability.should eq 100
19
+ expect(shuttle.convert_to(:space_ship).reliability).to eq 100
20
20
  end
21
21
 
22
22
  context 'associations' do
@@ -25,7 +25,7 @@ describe SpaceShuttle do
25
25
  # its associated spaceship
26
26
  (1..2).map { SpaceShip.create(:name => 'test') }
27
27
  @shuttle = SpaceShuttle.create(:name => 'Discovery', :reliability => 100)
28
- @shuttle.id.should_not eq @shuttle.convert_to(:space_ship).id
28
+ expect(@shuttle.id).not_to eq @shuttle.convert_to(:space_ship).id
29
29
  end
30
30
 
31
31
  it "can use has_many associations defined in ascendant classes" do
@@ -40,25 +40,25 @@ describe SpaceShuttle do
40
40
  @shuttle.launches = [ launch1, launch2 ]
41
41
  @shuttle.save!
42
42
  }.to change(Launch, :count).by(1)
43
- @shuttle.launch_ids.sort.should eq [ launch1.id, launch2.id ]
43
+ expect(@shuttle.launch_ids.sort).to eq [ launch1.id, launch2.id ]
44
44
  launch3.save!
45
45
  @shuttle.launch_ids = [ launch1.id, launch3.id ]
46
- @shuttle.launch_ids.sort.should eq [ launch1.id, launch3.id ]
46
+ expect(@shuttle.launch_ids.sort).to eq [ launch1.id, launch3.id ]
47
47
  # test build functionality for adding to existing collection
48
48
  expect {
49
49
  @shuttle.launches.build(:date => Date.yesterday)
50
50
  @shuttle.save!
51
51
  }.to change(Launch, :count).by(1)
52
- @shuttle.launches.order(:id).last.date.should eq Date.yesterday
52
+ expect(@shuttle.launches.order(:id).last.date).to eq Date.yesterday
53
53
  # test build functionality for new collection
54
54
  @shuttle.launches.clear
55
- @shuttle.launch_ids.should eq []
55
+ expect(@shuttle.launch_ids).to eq []
56
56
  expect {
57
57
  @shuttle.name = 'Shuttle'
58
58
  @shuttle.launches.build(:date => Date.yesterday)
59
59
  @shuttle.save!
60
60
  }.to change(Launch, :count).by(1)
61
- @shuttle.name.should eq 'Shuttle'
61
+ expect(@shuttle.name).to eq 'Shuttle'
62
62
  # test build functionality for new collection and new object
63
63
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
64
64
  expect {
@@ -70,13 +70,13 @@ describe SpaceShuttle do
70
70
  }.to change(Launch, :count).by(2)
71
71
  }.to change(SpaceShuttle, :count).by(1)
72
72
  shuttle.reload
73
- shuttle.name.should eq 'Shuttle'
73
+ expect(shuttle.name).to eq 'Shuttle'
74
74
  # test adding onto existing collection
75
75
  expect {
76
76
  shuttle.launches.build(:date => Date.today)
77
77
  shuttle.save!
78
78
  }.to change(Launch, :count).by(1)
79
- shuttle.launches.order(:id).last.date.should eq Date.today
79
+ expect(shuttle.launches.order(:id).last.date).to eq Date.today
80
80
  end
81
81
 
82
82
  it "supports assignment on the 'remote' side of a has_many association" do
@@ -106,7 +106,7 @@ describe SpaceShuttle do
106
106
  ]
107
107
  @shuttle.save!
108
108
  }.to change(Launch, :count).by(2)
109
- @shuttle.launches.order(:date).map(&:date).should eq [ Date.yesterday, Date.today ]
109
+ expect(@shuttle.launches.order(:date).map(&:date)).to eq [ Date.yesterday, Date.today ]
110
110
  # do the same for a new object
111
111
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
112
112
  expect {
@@ -117,7 +117,7 @@ describe SpaceShuttle do
117
117
  shuttle.save!
118
118
  }.to change(Launch, :count).by(2)
119
119
  }.to change(SpaceShuttle, :count).by(1)
120
- shuttle.launches.order(:date).map(&:date).should eq [ Date.yesterday, Date.today ]
120
+ expect(shuttle.launches.order(:date).map(&:date)).to eq [ Date.yesterday, Date.today ]
121
121
  end
122
122
 
123
123
  it "can use has_many :through associations defined in ascendant classes" do
@@ -132,27 +132,27 @@ describe SpaceShuttle do
132
132
  @shuttle.experiments = [ experiment1, experiment2 ]
133
133
  @shuttle.save!
134
134
  }.to change(Experiment, :count).by(1)
135
- @shuttle.experiment_ids.sort.should eq [ experiment1.id, experiment2.id ]
135
+ expect(@shuttle.experiment_ids.sort).to eq [ experiment1.id, experiment2.id ]
136
136
  experiment3.save!
137
137
  @shuttle.experiment_ids = [ experiment1.id, experiment3.id ]
138
- @shuttle.experiment_ids.sort.should eq [ experiment1.id, experiment3.id ]
139
- Experiment.last.space_ships.first.specialize.id.should eq @shuttle.id
138
+ expect(@shuttle.experiment_ids.sort).to eq [ experiment1.id, experiment3.id ]
139
+ expect(Experiment.last.space_ships.first.specialize.id).to eq @shuttle.id
140
140
  # test build functionality for adding to existing collection
141
141
  expect {
142
142
  @shuttle.experiments.build(:name => 'Superconductivity')
143
143
  @shuttle.save!
144
144
  }.to change(Experiment, :count).by(1)
145
- @shuttle.experiments.order(:id).last.name.should eq 'Superconductivity'
145
+ expect(@shuttle.experiments.order(:id).last.name).to eq 'Superconductivity'
146
146
  # test build functionality for new collection
147
147
  @shuttle.experiments.clear
148
- @shuttle.experiment_ids.should eq []
148
+ expect(@shuttle.experiment_ids).to eq []
149
149
  expect {
150
150
  @shuttle.name = 'Shuttle'
151
151
  @shuttle.experiments.build(:name => 'Failed experiment')
152
152
  @shuttle.save!
153
153
  }.to change(Experiment, :count).by(1)
154
- @shuttle.experiments.first.name.should eq 'Failed experiment'
155
- @shuttle.name.should eq 'Shuttle'
154
+ expect(@shuttle.experiments.first.name).to eq 'Failed experiment'
155
+ expect(@shuttle.name).to eq 'Shuttle'
156
156
  # test build functionality for new collection and new object
157
157
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
158
158
  expect {
@@ -164,20 +164,20 @@ describe SpaceShuttle do
164
164
  }.to change(Experiment, :count).by(2)
165
165
  }.to change(SpaceShuttle, :count).by(1)
166
166
  shuttle.reload
167
- shuttle.name.should eq 'Shuttle'
168
- shuttle.experiments.order(:name).map(&:name).should eq ['Exp1', 'Exp2']
167
+ expect(shuttle.name).to eq 'Shuttle'
168
+ expect(shuttle.experiments.order(:name).map(&:name)).to eq ['Exp1', 'Exp2']
169
169
  # test adding onto existing collection (new object)
170
170
  expect {
171
171
  shuttle.experiments.build(:name => 'Exp3')
172
172
  shuttle.save!
173
173
  }.to change(Experiment, :count).by(1)
174
- shuttle.experiments.order(:name).map(&:name).should eq ['Exp1', 'Exp2', 'Exp3']
174
+ expect(shuttle.experiments.order(:name).map(&:name)).to eq ['Exp1', 'Exp2', 'Exp3']
175
175
  end
176
176
 
177
177
  it "supports operations on the 'remote' side of a has_many :through association" do
178
178
  experiment = Experiment.new(:name => 'Zero-gravity')
179
179
  shuttle2 = SpaceShuttle.create(:name => 'Endeavour', :reliability => 100)
180
- shuttle2.id.should_not eq shuttle2.convert_to(:space_ship).id
180
+ expect(shuttle2.id).not_to eq shuttle2.convert_to(:space_ship).id
181
181
  expect {
182
182
  experiment.space_ships = [@shuttle, shuttle2]
183
183
  experiment.save!
@@ -211,7 +211,7 @@ describe SpaceShuttle do
211
211
  ]
212
212
  @shuttle.save!
213
213
  }.to change(Experiment, :count).by(2)
214
- @shuttle.experiments.order(:name).map(&:name).should eq [ 'Exp1', 'Exp2' ]
214
+ expect(@shuttle.experiments.order(:name).map(&:name)).to eq [ 'Exp1', 'Exp2' ]
215
215
  # do the same for a new object
216
216
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
217
217
  expect {
@@ -222,7 +222,7 @@ describe SpaceShuttle do
222
222
  shuttle.save!
223
223
  }.to change(Experiment, :count).by(2)
224
224
  }.to change(SpaceShuttle, :count).by(1)
225
- shuttle.experiments.order(:name).map(&:name).should eq [ 'Exp1', 'Exp2' ]
225
+ expect(shuttle.experiments.order(:name).map(&:name)).to eq [ 'Exp1', 'Exp2' ]
226
226
  end
227
227
 
228
228
  it "can use has_one associations defined in ascendant classes" do
@@ -232,19 +232,19 @@ describe SpaceShuttle do
232
232
  @shuttle.save!
233
233
  }.to change(Captain, :count).by(1)
234
234
  @shuttle.reload
235
- @shuttle.captain.id.should eq captain.id
235
+ expect(@shuttle.captain.id).to eq captain.id
236
236
  @shuttle.captain.destroy
237
237
  expect {
238
238
  @shuttle.create_captain(:name => 'Glenn')
239
239
  }.to change(Captain, :count).by(1)
240
- @shuttle.captain.space_ship_id.should eq @shuttle.convert_to(:space_ship).id
240
+ expect(@shuttle.captain.space_ship_id).to eq @shuttle.convert_to(:space_ship).id
241
241
  Captain.all.map(&:destroy)
242
242
  # test build for existing object
243
243
  expect {
244
244
  cap = @shuttle.build_captain(:name => 'Aldrinn')
245
245
  @shuttle.save!
246
246
  }.to change(Captain, :count).by(1)
247
- @shuttle.captain.space_ship_id.should eq @shuttle.convert_to(:space_ship).id
247
+ expect(@shuttle.captain.space_ship_id).to eq @shuttle.convert_to(:space_ship).id
248
248
  # test build for new object
249
249
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
250
250
  expect {
@@ -254,8 +254,8 @@ describe SpaceShuttle do
254
254
  shuttle.save!
255
255
  }.to change(Captain, :count).by(1)
256
256
  }.to change(SpaceShuttle, :count).by(1)
257
- shuttle.name.should eq 'Shuttle'
258
- shuttle.captain.space_ship_id.should eq shuttle.convert_to(:space_ship).id
257
+ expect(shuttle.name).to eq 'Shuttle'
258
+ expect(shuttle.captain.space_ship_id).to eq shuttle.convert_to(:space_ship).id
259
259
  end
260
260
 
261
261
  it "supports operations on the 'remote' side of a has_one association" do
@@ -283,7 +283,7 @@ describe SpaceShuttle do
283
283
  @shuttle.captain_attributes = {:name => 'Haddock'}
284
284
  @shuttle.save!
285
285
  }.to change(Captain, :count).by(1)
286
- @shuttle.captain.name.should eq 'Haddock'
286
+ expect(@shuttle.captain.name).to eq 'Haddock'
287
287
  # do the same for a new object
288
288
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
289
289
  expect {
@@ -292,7 +292,7 @@ describe SpaceShuttle do
292
292
  shuttle.save!
293
293
  }.to change(Captain, :count).by(1)
294
294
  }.to change(SpaceShuttle, :count).by(1)
295
- shuttle.captain.name.should eq 'Haddock'
295
+ expect(shuttle.captain.name).to eq 'Haddock'
296
296
  end
297
297
 
298
298
  it "can use has_and_belongs_to_many associations defined in ascendant classes" do
@@ -303,31 +303,31 @@ describe SpaceShuttle do
303
303
  @shuttle.astronauts << astronaut1
304
304
  @shuttle.save!
305
305
  }.to change(Astronaut, :count).by(1)
306
- @shuttle.astronauts.first.name.should eq astronaut1.name
306
+ expect(@shuttle.astronauts.first.name).to eq astronaut1.name
307
307
  expect {
308
308
  @shuttle.astronauts = [ astronaut1, astronaut2 ]
309
309
  @shuttle.save!
310
310
  }.to change(Astronaut, :count).by(1)
311
- @shuttle.astronaut_ids.sort.should eq [ astronaut1.id, astronaut2.id ]
311
+ expect(@shuttle.astronaut_ids.sort).to eq [ astronaut1.id, astronaut2.id ]
312
312
  astronaut3.save!
313
313
  @shuttle.astronaut_ids = [ astronaut1.id, astronaut3.id ]
314
- @shuttle.astronaut_ids.sort.should eq [ astronaut1.id, astronaut3.id ]
314
+ expect(@shuttle.astronaut_ids.sort).to eq [ astronaut1.id, astronaut3.id ]
315
315
  # test build functionality for adding to existing collection
316
316
  expect {
317
317
  @shuttle.astronauts.build(:name => 'astro1')
318
318
  @shuttle.save!
319
319
  }.to change(Astronaut, :count).by(1)
320
- @shuttle.astronauts.order(:id).last.name.should eq 'astro1'
320
+ expect(@shuttle.astronauts.order(:id).last.name).to eq 'astro1'
321
321
  # test build functionality for new collection
322
322
  @shuttle.astronauts.clear
323
- @shuttle.astronaut_ids.should eq []
323
+ expect(@shuttle.astronaut_ids).to eq []
324
324
  expect {
325
325
  @shuttle.name = 'Shuttle'
326
326
  @shuttle.astronauts.build(:name => 'astro2')
327
327
  @shuttle.save!
328
328
  }.to change(Astronaut, :count).by(1)
329
- @shuttle.astronauts.first.name.should eq 'astro2'
330
- @shuttle.name.should eq 'Shuttle'
329
+ expect(@shuttle.astronauts.first.name).to eq 'astro2'
330
+ expect(@shuttle.name).to eq 'Shuttle'
331
331
  # test build functionality for new collection and new object
332
332
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
333
333
  expect {
@@ -339,32 +339,32 @@ describe SpaceShuttle do
339
339
  }.to change(Astronaut, :count).by(2)
340
340
  }.to change(SpaceShuttle, :count).by(1)
341
341
  shuttle.reload
342
- shuttle.name.should eq 'Shuttle'
343
- shuttle.astronauts.order(:name).map(&:name).should eq ['Astro1', 'Astro2']
342
+ expect(shuttle.name).to eq 'Shuttle'
343
+ expect(shuttle.astronauts.order(:name).map(&:name)).to eq ['Astro1', 'Astro2']
344
344
  # test adding onto existing collection (new object)
345
345
  expect {
346
346
  shuttle.astronauts.build(:name => 'Astro3')
347
347
  shuttle.save!
348
348
  }.to change(Astronaut, :count).by(1)
349
- shuttle.astronauts.order(:name).map(&:name).should eq ['Astro1', 'Astro2', 'Astro3']
349
+ expect(shuttle.astronauts.order(:name).map(&:name)).to eq ['Astro1', 'Astro2', 'Astro3']
350
350
  end
351
351
 
352
352
  it "supports operations on the 'remote' side of a has_and_belongs_to_many association" do
353
353
  astronaut = Astronaut.new(:name => 'Armstrong')
354
354
  shuttle2 = SpaceShuttle.create(:name => 'Endeavour', :reliability => 100)
355
- shuttle2.id.should_not eq shuttle2.convert_to(:space_ship).id
355
+ expect(shuttle2.id).not_to eq shuttle2.convert_to(:space_ship).id
356
356
  query = 'SELECT COUNT(*) FROM astronauts_space_ships'
357
- ActiveRecord::Base.connection().execute(query)[0]['count'].to_i.should be_zero
357
+ expect(ActiveRecord::Base.connection().execute(query)[0]['count'].to_i).to be_zero
358
358
  astronaut.space_ships = [@shuttle, shuttle2]
359
359
  astronaut.save!
360
- ActiveRecord::Base.connection().execute(query)[0]['count'].to_i.should eq 2
360
+ expect(ActiveRecord::Base.connection().execute(query)[0]['count'].to_i).to eq 2
361
361
  astronaut.space_ships.delete(@shuttle, shuttle2)
362
- ActiveRecord::Base.connection().execute(query)[0]['count'].to_i.should be_zero
362
+ expect(ActiveRecord::Base.connection().execute(query)[0]['count'].to_i).to be_zero
363
363
  astronaut.space_ships << @shuttle
364
364
  astronaut.save!
365
- ActiveRecord::Base.connection().execute(query)[0]['count'].to_i.should eq 1
365
+ expect(ActiveRecord::Base.connection().execute(query)[0]['count'].to_i).to eq 1
366
366
  astronaut.space_ships.destroy(@shuttle)
367
- ActiveRecord::Base.connection().execute(query)[0]['count'].to_i.should be_zero
367
+ expect(ActiveRecord::Base.connection().execute(query)[0]['count'].to_i).to be_zero
368
368
  # make sure nil assignments raise activerecord exceptions and not exceptions in dbview_cti code
369
369
  expect {
370
370
  astronaut.space_ships = [nil]
@@ -386,7 +386,7 @@ describe SpaceShuttle do
386
386
  ]
387
387
  @shuttle.save!
388
388
  }.to change(Astronaut, :count).by(2)
389
- @shuttle.astronauts.order(:name).map(&:name).should eq [ 'Astro1', 'Astro2' ]
389
+ expect(@shuttle.astronauts.order(:name).map(&:name)).to eq [ 'Astro1', 'Astro2' ]
390
390
  # do the same for a new object
391
391
  shuttle = SpaceShuttle.new(:name => 'Endeavour', :reliability => 100)
392
392
  expect {
@@ -397,7 +397,7 @@ describe SpaceShuttle do
397
397
  shuttle.save!
398
398
  }.to change(Astronaut, :count).by(2)
399
399
  }.to change(SpaceShuttle, :count).by(1)
400
- shuttle.astronauts.order(:name).map(&:name).should eq [ 'Astro1', 'Astro2' ]
400
+ expect(shuttle.astronauts.order(:name).map(&:name)).to eq [ 'Astro1', 'Astro2' ]
401
401
  end
402
402
 
403
403
  it "doesn't choke on belongs_to associations" do
@@ -447,13 +447,13 @@ describe SpaceShuttle do
447
447
  @shuttle.upgraded_to << shuttle2
448
448
  @shuttle.save!
449
449
  shuttle2.reload
450
- shuttle2.upgraded_from.specialize.id.should eq @shuttle.id
450
+ expect(shuttle2.upgraded_from.specialize.id).to eq @shuttle.id
451
451
  # check belongs_to side
452
452
  shuttle3 = SpaceShuttle.create(:name => 'Endeavour', :reliability => 100)
453
453
  @shuttle.upgraded_from = shuttle3
454
454
  @shuttle.save!
455
455
  @shuttle.reload
456
- @shuttle.upgraded_from.specialize.id.should eq shuttle3.id
456
+ expect(@shuttle.upgraded_from.specialize.id).to eq shuttle3.id
457
457
  end
458
458
 
459
459
  end
@@ -7,34 +7,34 @@ describe Vehicle do
7
7
  @car = Car.create(:name => 'MyCar')
8
8
  vehicle = Vehicle.order(:id).last
9
9
  car = vehicle.specialize
10
- car.class.name.should eq 'Car'
11
- car.id.should eq @car.id
10
+ expect(car.class.name).to eq 'Car'
11
+ expect(car.id).to eq @car.id
12
12
 
13
13
  @motorcycle = MotorCycle.create(:name => 'MyBike')
14
14
  vehicle = Vehicle.order(:id).last
15
15
  motorcycle = vehicle.specialize
16
- motorcycle.class.name.should eq 'MotorCycle'
17
- motorcycle.id.should eq @motorcycle.id
16
+ expect(motorcycle.class.name).to eq 'MotorCycle'
17
+ expect(motorcycle.id).to eq @motorcycle.id
18
18
 
19
19
  @motor_vehicle = MotorVehicle.create(:name => 'MyTrike')
20
20
  vehicle = Vehicle.order(:id).last
21
21
  motor_vehicle = vehicle.specialize
22
- motor_vehicle.class.name.should eq 'MotorVehicle'
23
- motor_vehicle.id.should eq @motor_vehicle.id
22
+ expect(motor_vehicle.class.name).to eq 'MotorVehicle'
23
+ expect(motor_vehicle.id).to eq @motor_vehicle.id
24
24
  end
25
25
 
26
26
  it "returns the correct type" do
27
27
  @car = Car.create(:name => 'MyCar')
28
28
  vehicle = Vehicle.order(:id).last
29
- vehicle.type.should eq 'Car'
29
+ expect(vehicle.type).to eq 'Car'
30
30
 
31
31
  @motorcycle = MotorCycle.create(:name => 'MyBike')
32
32
  vehicle = Vehicle.order(:id).last
33
- vehicle.type.should eq 'MotorCycle'
33
+ expect(vehicle.type).to eq 'MotorCycle'
34
34
 
35
35
  @motor_vehicle = MotorVehicle.create(:name => 'MyTrike')
36
36
  vehicle = Vehicle.order(:id).last
37
- vehicle.type.should eq 'MotorVehicle'
37
+ expect(vehicle.type).to eq 'MotorVehicle'
38
38
  end
39
39
 
40
40
  it "also destroys rows belonging to derived classes on destroy" do
@@ -51,24 +51,24 @@ describe Vehicle do
51
51
 
52
52
  def test_destroy_variant(method)
53
53
  car = Car.create(:name => 'MyCar')
54
- Vehicle.count.should eq 1
55
- Car.cti_table_count.should eq 1
56
- MotorVehicle.cti_table_count.should eq 1
54
+ expect(Vehicle.count).to eq 1
55
+ expect(Car.cti_table_count).to eq 1
56
+ expect(MotorVehicle.cti_table_count).to eq 1
57
57
  vehicle = Vehicle.order(:id).last
58
58
  vehicle.send(method)
59
- Vehicle.count.should eq 0
60
- Car.cti_table_count.should eq 0
61
- MotorVehicle.cti_table_count.should eq 0
59
+ expect(Vehicle.count).to eq 0
60
+ expect(Car.cti_table_count).to eq 0
61
+ expect(MotorVehicle.cti_table_count).to eq 0
62
62
  # do the same for the space-branch (which has foreign key constraints)
63
63
  shuttle = SpaceShuttle.create(:name => 'Discovery')
64
- Vehicle.count.should eq 1
65
- SpaceShuttle.cti_table_count.should eq 1
66
- SpaceShip.cti_table_count.should eq 1
64
+ expect(Vehicle.count).to eq 1
65
+ expect(SpaceShuttle.cti_table_count).to eq 1
66
+ expect(SpaceShip.cti_table_count).to eq 1
67
67
  vehicle = Vehicle.order(:id).last
68
68
  vehicle.send(method)
69
- Vehicle.count.should eq 0
70
- SpaceShuttle.cti_table_count.should eq 0
71
- SpaceShip.cti_table_count.should eq 0
69
+ expect(Vehicle.count).to eq 0
70
+ expect(SpaceShuttle.cti_table_count).to eq 0
71
+ expect(SpaceShip.cti_table_count).to eq 0
72
72
  end
73
73
 
74
74
  # simply to show that the gem doesn't interfere with foreign keys
@@ -76,15 +76,15 @@ describe Vehicle do
76
76
  shuttle = SpaceShuttle.create(:name => 'Discovery')
77
77
  expect {
78
78
  Vehicle.delete_all
79
- }.to raise_error
79
+ }.to raise_error(ActiveRecord::InvalidForeignKey)
80
80
  end
81
81
 
82
82
  it "correctly reports ascendants" do
83
- Vehicle.cti_ascendants.should eq []
83
+ expect(Vehicle.cti_ascendants).to eq []
84
84
  end
85
85
 
86
86
  it "correctly reports descendants" do
87
- Vehicle.cti_all_descendants.should eq %w( MotorVehicle Car MotorCycle SpaceShip SpaceShuttle )
87
+ expect(Vehicle.cti_all_descendants).to eq %w( MotorVehicle Car MotorCycle SpaceShip SpaceShuttle )
88
88
  end
89
89
 
90
90
  end
data/spec/spec_helper.rb CHANGED
@@ -4,7 +4,6 @@ rails_major_version = 3
4
4
  rails_major_version = ENV["RAILS_VERSION"][0] unless ENV["RAILS_VERSION"].nil?
5
5
  require File.expand_path("../dummy-rails-#{rails_major_version}/config/environment", __FILE__)
6
6
  require 'rspec/rails'
7
- require 'rspec/autorun'
8
7
 
9
8
  # Requires supporting ruby files with custom matchers and macros, etc,
10
9
  # in spec/support/ and its subdirectories.
@@ -37,4 +36,15 @@ RSpec.configure do |config|
37
36
  # the seed, which is printed after each run.
38
37
  # --seed 1234
39
38
  config.order = "random"
39
+
40
+ # rspec-rails 3 will no longer automatically infer an example group's spec type
41
+ # from the file location. You can explicitly opt-in to the feature using this
42
+ # config option.
43
+ # To explicitly tag specs without using automatic inference, set the `:type`
44
+ # metadata manually:
45
+ #
46
+ # describe ThingsController, :type => :controller do
47
+ # # Equivalent to being in spec/controllers
48
+ # end
49
+ config.infer_spec_type_from_file_location!
40
50
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dbview_cti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michaël Van Damme
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-29 00:00:00.000000000 Z
11
+ date: 2016-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec-rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.14'
33
+ version: '3.5'
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: '2.14'
40
+ version: '3.5'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: foreigner
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: This gem implements Class Table Inheritance (CTI) for Rails using database
@@ -60,8 +60,8 @@ executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
- - .gitignore
64
- - .travis.yml
63
+ - ".gitignore"
64
+ - ".travis.yml"
65
65
  - CHANGELOG.md
66
66
  - Gemfile
67
67
  - MIT-LICENSE
@@ -196,6 +196,63 @@ files:
196
196
  - spec/dummy-rails-4/public/422.html
197
197
  - spec/dummy-rails-4/public/500.html
198
198
  - spec/dummy-rails-4/public/favicon.ico
199
+ - spec/dummy-rails-5/Rakefile
200
+ - spec/dummy-rails-5/app/assets/config/manifest.js
201
+ - spec/dummy-rails-5/app/assets/images/.keep
202
+ - spec/dummy-rails-5/app/assets/javascripts/application.js
203
+ - spec/dummy-rails-5/app/assets/javascripts/cable.js
204
+ - spec/dummy-rails-5/app/assets/javascripts/channels/.keep
205
+ - spec/dummy-rails-5/app/assets/stylesheets/application.css
206
+ - spec/dummy-rails-5/app/channels/application_cable/channel.rb
207
+ - spec/dummy-rails-5/app/channels/application_cable/connection.rb
208
+ - spec/dummy-rails-5/app/controllers/application_controller.rb
209
+ - spec/dummy-rails-5/app/controllers/concerns/.keep
210
+ - spec/dummy-rails-5/app/helpers/application_helper.rb
211
+ - spec/dummy-rails-5/app/jobs/application_job.rb
212
+ - spec/dummy-rails-5/app/mailers/application_mailer.rb
213
+ - spec/dummy-rails-5/app/models.original/application_record.rb
214
+ - spec/dummy-rails-5/app/models.original/concerns/.keep
215
+ - spec/dummy-rails-5/app/views/layouts/application.html.erb
216
+ - spec/dummy-rails-5/app/views/layouts/mailer.html.erb
217
+ - spec/dummy-rails-5/app/views/layouts/mailer.text.erb
218
+ - spec/dummy-rails-5/bin/bundle
219
+ - spec/dummy-rails-5/bin/rails
220
+ - spec/dummy-rails-5/bin/rake
221
+ - spec/dummy-rails-5/bin/setup
222
+ - spec/dummy-rails-5/bin/update
223
+ - spec/dummy-rails-5/config.ru
224
+ - spec/dummy-rails-5/config/application.rb
225
+ - spec/dummy-rails-5/config/boot.rb
226
+ - spec/dummy-rails-5/config/cable.yml
227
+ - spec/dummy-rails-5/config/database.yml
228
+ - spec/dummy-rails-5/config/environment.rb
229
+ - spec/dummy-rails-5/config/environments/development.rb
230
+ - spec/dummy-rails-5/config/environments/production.rb
231
+ - spec/dummy-rails-5/config/environments/test.rb
232
+ - spec/dummy-rails-5/config/initializers/application_controller_renderer.rb
233
+ - spec/dummy-rails-5/config/initializers/assets.rb
234
+ - spec/dummy-rails-5/config/initializers/backtrace_silencers.rb
235
+ - spec/dummy-rails-5/config/initializers/cookies_serializer.rb
236
+ - spec/dummy-rails-5/config/initializers/dbview_cti.rb
237
+ - spec/dummy-rails-5/config/initializers/filter_parameter_logging.rb
238
+ - spec/dummy-rails-5/config/initializers/inflections.rb
239
+ - spec/dummy-rails-5/config/initializers/mime_types.rb
240
+ - spec/dummy-rails-5/config/initializers/new_framework_defaults.rb
241
+ - spec/dummy-rails-5/config/initializers/session_store.rb
242
+ - spec/dummy-rails-5/config/initializers/wrap_parameters.rb
243
+ - spec/dummy-rails-5/config/locales/en.yml
244
+ - spec/dummy-rails-5/config/puma.rb
245
+ - spec/dummy-rails-5/config/routes.rb
246
+ - spec/dummy-rails-5/config/secrets.yml
247
+ - spec/dummy-rails-5/config/spring.rb
248
+ - spec/dummy-rails-5/lib/assets/.keep
249
+ - spec/dummy-rails-5/log/.keep
250
+ - spec/dummy-rails-5/public/404.html
251
+ - spec/dummy-rails-5/public/422.html
252
+ - spec/dummy-rails-5/public/500.html
253
+ - spec/dummy-rails-5/public/apple-touch-icon-precomposed.png
254
+ - spec/dummy-rails-5/public/apple-touch-icon.png
255
+ - spec/dummy-rails-5/public/favicon.ico
199
256
  - spec/models/car_spec.rb
200
257
  - spec/models/motor_vehicle_spec.rb
201
258
  - spec/models/space_shuttle_spec.rb
@@ -211,17 +268,17 @@ require_paths:
211
268
  - lib
212
269
  required_ruby_version: !ruby/object:Gem::Requirement
213
270
  requirements:
214
- - - ! '>='
271
+ - - ">="
215
272
  - !ruby/object:Gem::Version
216
273
  version: '0'
217
274
  required_rubygems_version: !ruby/object:Gem::Requirement
218
275
  requirements:
219
- - - ! '>='
276
+ - - ">="
220
277
  - !ruby/object:Gem::Version
221
278
  version: '0'
222
279
  requirements: []
223
280
  rubyforge_project:
224
- rubygems_version: 2.2.2
281
+ rubygems_version: 2.4.8
225
282
  signing_key:
226
283
  specification_version: 4
227
284
  summary: Class Table Inheritance (CTI) for Rails.