dbview_cti 0.0.1

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 (113) hide show
  1. data/.gitignore +9 -0
  2. data/Gemfile +31 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +219 -0
  5. data/Rakefile +27 -0
  6. data/dbview_cti.gemspec +24 -0
  7. data/lib/db_view_cti/connection_adapters/schema_statements.rb +44 -0
  8. data/lib/db_view_cti/loader.rb +19 -0
  9. data/lib/db_view_cti/migration/command_recorder.rb +19 -0
  10. data/lib/db_view_cti/model/cti.rb +129 -0
  11. data/lib/db_view_cti/model/extensions.rb +25 -0
  12. data/lib/db_view_cti/names.rb +33 -0
  13. data/lib/db_view_cti/railtie.rb +11 -0
  14. data/lib/db_view_cti/sql_generation/migration/base.rb +92 -0
  15. data/lib/db_view_cti/sql_generation/migration/factory.rb +19 -0
  16. data/lib/db_view_cti/sql_generation/migration/postgresql.rb +107 -0
  17. data/lib/db_view_cti/sql_generation/model.rb +60 -0
  18. data/lib/db_view_cti/version.rb +3 -0
  19. data/lib/dbview_cti.rb +35 -0
  20. data/lib/tasks/view-based-cti_tasks.rake +4 -0
  21. data/spec/dummy-rails-3/.rspec +1 -0
  22. data/spec/dummy-rails-3/Rakefile +7 -0
  23. data/spec/dummy-rails-3/app/assets/javascripts/application.js +15 -0
  24. data/spec/dummy-rails-3/app/assets/stylesheets/application.css +13 -0
  25. data/spec/dummy-rails-3/app/controllers/application_controller.rb +3 -0
  26. data/spec/dummy-rails-3/app/helpers/application_helper.rb +2 -0
  27. data/spec/dummy-rails-3/app/mailers/.gitkeep +0 -0
  28. data/spec/dummy-rails-3/app/models/.gitkeep +0 -0
  29. data/spec/dummy-rails-3/app/models/car.rb +4 -0
  30. data/spec/dummy-rails-3/app/models/motor_cycle.rb +4 -0
  31. data/spec/dummy-rails-3/app/models/motor_vehicle.rb +4 -0
  32. data/spec/dummy-rails-3/app/models/rocket_engine.rb +4 -0
  33. data/spec/dummy-rails-3/app/models/space_ship.rb +4 -0
  34. data/spec/dummy-rails-3/app/models/space_shuttle.rb +4 -0
  35. data/spec/dummy-rails-3/app/models/vehicle.rb +4 -0
  36. data/spec/dummy-rails-3/app/views/layouts/application.html.erb +14 -0
  37. data/spec/dummy-rails-3/config/application.rb +68 -0
  38. data/spec/dummy-rails-3/config/boot.rb +10 -0
  39. data/spec/dummy-rails-3/config/database.yml +37 -0
  40. data/spec/dummy-rails-3/config/environment.rb +5 -0
  41. data/spec/dummy-rails-3/config/environments/development.rb +37 -0
  42. data/spec/dummy-rails-3/config/environments/production.rb +67 -0
  43. data/spec/dummy-rails-3/config/environments/test.rb +37 -0
  44. data/spec/dummy-rails-3/config/initializers/backtrace_silencers.rb +7 -0
  45. data/spec/dummy-rails-3/config/initializers/dbview_cti.rb +8 -0
  46. data/spec/dummy-rails-3/config/initializers/inflections.rb +15 -0
  47. data/spec/dummy-rails-3/config/initializers/mime_types.rb +5 -0
  48. data/spec/dummy-rails-3/config/initializers/secret_token.rb +7 -0
  49. data/spec/dummy-rails-3/config/initializers/session_store.rb +8 -0
  50. data/spec/dummy-rails-3/config/initializers/wrap_parameters.rb +14 -0
  51. data/spec/dummy-rails-3/config/locales/en.yml +5 -0
  52. data/spec/dummy-rails-3/config/routes.rb +58 -0
  53. data/spec/dummy-rails-3/config.ru +4 -0
  54. data/spec/dummy-rails-3/db/migrate/20130711214909_create_vehicles.rb +10 -0
  55. data/spec/dummy-rails-3/db/migrate/20130713133605_create_motor_vehicles.rb +13 -0
  56. data/spec/dummy-rails-3/db/migrate/20130713133705_create_cars.rb +13 -0
  57. data/spec/dummy-rails-3/db/migrate/20130713153631_create_motor_cycles.rb +12 -0
  58. data/spec/dummy-rails-3/db/migrate/20130816022212_create_space_ships.rb +13 -0
  59. data/spec/dummy-rails-3/db/migrate/20130817014120_create_space_shuttles.rb +14 -0
  60. data/spec/dummy-rails-3/db/migrate/20130817024220_create_rocket_engines.rb +12 -0
  61. data/spec/dummy-rails-3/db/migrate/20130819040414_add_reliability_to_space_ships.rb +13 -0
  62. data/spec/dummy-rails-3/db/schema.rb +74 -0
  63. data/spec/dummy-rails-3/lib/assets/.gitkeep +0 -0
  64. data/spec/dummy-rails-3/log/.gitkeep +0 -0
  65. data/spec/dummy-rails-3/public/404.html +26 -0
  66. data/spec/dummy-rails-3/public/422.html +26 -0
  67. data/spec/dummy-rails-3/public/500.html +25 -0
  68. data/spec/dummy-rails-3/public/favicon.ico +0 -0
  69. data/spec/dummy-rails-3/script/rails +6 -0
  70. data/spec/dummy-rails-4/.rspec +1 -0
  71. data/spec/dummy-rails-4/Rakefile +6 -0
  72. data/spec/dummy-rails-4/app/assets/images/.keep +0 -0
  73. data/spec/dummy-rails-4/app/assets/javascripts/application.js +13 -0
  74. data/spec/dummy-rails-4/app/assets/stylesheets/application.css +13 -0
  75. data/spec/dummy-rails-4/app/controllers/application_controller.rb +5 -0
  76. data/spec/dummy-rails-4/app/controllers/concerns/.keep +0 -0
  77. data/spec/dummy-rails-4/app/helpers/application_helper.rb +2 -0
  78. data/spec/dummy-rails-4/app/mailers/.keep +0 -0
  79. data/spec/dummy-rails-4/app/views/layouts/application.html.erb +14 -0
  80. data/spec/dummy-rails-4/bin/bundle +3 -0
  81. data/spec/dummy-rails-4/bin/rails +4 -0
  82. data/spec/dummy-rails-4/bin/rake +4 -0
  83. data/spec/dummy-rails-4/config/application.rb +28 -0
  84. data/spec/dummy-rails-4/config/boot.rb +5 -0
  85. data/spec/dummy-rails-4/config/database.yml +37 -0
  86. data/spec/dummy-rails-4/config/environment.rb +5 -0
  87. data/spec/dummy-rails-4/config/environments/development.rb +29 -0
  88. data/spec/dummy-rails-4/config/environments/production.rb +80 -0
  89. data/spec/dummy-rails-4/config/environments/test.rb +36 -0
  90. data/spec/dummy-rails-4/config/initializers/backtrace_silencers.rb +7 -0
  91. data/spec/dummy-rails-4/config/initializers/dbview_cti.rb +8 -0
  92. data/spec/dummy-rails-4/config/initializers/filter_parameter_logging.rb +4 -0
  93. data/spec/dummy-rails-4/config/initializers/inflections.rb +16 -0
  94. data/spec/dummy-rails-4/config/initializers/mime_types.rb +5 -0
  95. data/spec/dummy-rails-4/config/initializers/secret_token.rb +12 -0
  96. data/spec/dummy-rails-4/config/initializers/session_store.rb +3 -0
  97. data/spec/dummy-rails-4/config/initializers/wrap_parameters.rb +14 -0
  98. data/spec/dummy-rails-4/config/locales/en.yml +23 -0
  99. data/spec/dummy-rails-4/config/routes.rb +56 -0
  100. data/spec/dummy-rails-4/config.ru +4 -0
  101. data/spec/dummy-rails-4/db/schema.rb +74 -0
  102. data/spec/dummy-rails-4/lib/assets/.keep +0 -0
  103. data/spec/dummy-rails-4/log/.keep +0 -0
  104. data/spec/dummy-rails-4/public/404.html +58 -0
  105. data/spec/dummy-rails-4/public/422.html +58 -0
  106. data/spec/dummy-rails-4/public/500.html +57 -0
  107. data/spec/dummy-rails-4/public/favicon.ico +0 -0
  108. data/spec/models/car_spec.rb +58 -0
  109. data/spec/models/motor_vehicle_spec.rb +44 -0
  110. data/spec/models/space_shuttle_spec.rb +22 -0
  111. data/spec/models/vehicle_spec.rb +90 -0
  112. data/spec/spec_helper.rb +40 -0
  113. metadata +228 -0
@@ -0,0 +1,58 @@
1
+ # Since the gem provides model methods these tests serve as a kind of 'integration tests' for the gem
2
+ require 'spec_helper'
3
+
4
+ describe Car do
5
+ before :each do
6
+ @car = Car.create(:name => 'MyCar', :mass => 1000, :number_of_wheels => 4, :stick_shift => true)
7
+ end
8
+
9
+ it "creates parent-class records on create" do
10
+ Vehicle.count.should eq 1
11
+ MotorVehicle.count.should eq 1
12
+ Car.count.should eq 1
13
+ MotorCycle.count.should eq 0
14
+ end
15
+
16
+ it "updates properties of ancestor classes" do
17
+ id = @car.id
18
+ @car.name = 'Porsche'
19
+ @car.fuel = 'gasoline'
20
+ @car.convertible = true
21
+ @car.save!
22
+ car = Car.find(id)
23
+ car.name.should eq 'Porsche'
24
+ car.mass.should eq 1000
25
+ car.fuel.should eq 'gasoline'
26
+ car.stick_shift.should be_true
27
+ car.convertible.should be_true
28
+ end
29
+
30
+ it "deletes parent-class records on destroy" do
31
+ @car.destroy
32
+ Vehicle.count.should eq 0
33
+ MotorVehicle.count.should eq 0
34
+ Car.count.should eq 0
35
+ end
36
+
37
+ it "converts to parent classes" do
38
+ motor_vehicle = @car.convert_to(:motor_vehicle)
39
+ motor_vehicle.class.name.should eq 'MotorVehicle'
40
+ motor_vehicle.specialize.id.should eq @car.id
41
+ vehicle = @car.convert_to(:vehicle)
42
+ vehicle.class.name.should eq 'Vehicle'
43
+ vehicle.specialize.id.should eq @car.id
44
+ end
45
+
46
+ it "doesn't convert to non-parent class" do
47
+ @car.convert_to(:motor_cycle).should be_nil
48
+ end
49
+
50
+ it "correctly reports ascendants" do
51
+ Car.cti_ascendants.should eq %w( Vehicle MotorVehicle )
52
+ end
53
+
54
+ it "correctly reports descendants" do
55
+ Car.cti_all_descendants.should eq []
56
+ end
57
+
58
+ end
@@ -0,0 +1,44 @@
1
+ # Since the gem provides model methods these tests serve as a kind of 'integration tests' for the gem
2
+ require 'spec_helper'
3
+
4
+ describe MotorVehicle do
5
+
6
+ it "correctly specializes to the derived class" do
7
+ @car = Car.create(:name => 'MyCar')
8
+ motor_vehicle = MotorVehicle.order(:id).last
9
+ car = motor_vehicle.specialize
10
+ car.class.name.should eq 'Car'
11
+ car.id.should eq @car.id
12
+
13
+ @motorcycle = MotorCycle.create(:name => 'MyBike')
14
+ motor_vehicle = MotorVehicle.order(:id).last
15
+ motorcycle = motor_vehicle.specialize
16
+ motorcycle.class.name.should eq 'MotorCycle'
17
+ motorcycle.id.should eq @motorcycle.id
18
+ end
19
+
20
+ it "correctly converts to the derived classes" do
21
+ @car = Car.create(:name => 'MyCar')
22
+ # convert to parent
23
+ motor_vehicle = @car.convert_to(:motor_vehicle)
24
+ # convert back to derived class
25
+ car = motor_vehicle.convert_to(:car)
26
+ car.class.name.should eq 'Car'
27
+ car.id.should eq @car.id
28
+ end
29
+
30
+ it "doesn't convert to class outside of hierarchy" do
31
+ @car = Car.create(:name => 'MyCar')
32
+ motor_vehicle = @car.convert_to(:motor_vehicle)
33
+ motor_vehicle.convert_to(:rocket_engine).should be_nil
34
+ end
35
+
36
+ it "correctly reports ascendants" do
37
+ MotorVehicle.cti_ascendants.should eq %w( Vehicle )
38
+ end
39
+
40
+ it "correctly reports descendants" do
41
+ MotorVehicle.cti_all_descendants.should eq %w( Car MotorCycle )
42
+ end
43
+
44
+ end
@@ -0,0 +1,22 @@
1
+ # Since the gem provides model methods these tests serve as a kind of 'integration tests' for the gem
2
+ require 'spec_helper'
3
+
4
+ describe SpaceShuttle do
5
+
6
+ it "raises exception on external foreign key violation caused by destroy" do
7
+ # test that foreign key contraints to tables outside of the CTI hierarchy
8
+ # prevent destroy
9
+ shuttle = SpaceShuttle.create(:name => 'Discovery')
10
+ rocket_engine = RocketEngine.create(:name => 'Booster',
11
+ :space_ship_id => shuttle.convert_to(:space_ship).id)
12
+ expect {
13
+ shuttle.destroy
14
+ }.to raise_error
15
+ end
16
+
17
+ it "stores attributes that were added to ascendant classes after initial creation of the tables" do
18
+ shuttle = SpaceShuttle.create(:name => 'Discovery', :reliability => 100)
19
+ shuttle.convert_to(:space_ship).reliability.should eq 100
20
+ end
21
+
22
+ end
@@ -0,0 +1,90 @@
1
+ # Since the gem provides model methods these tests serve as a kind of 'integration tests' for the gem
2
+ require 'spec_helper'
3
+
4
+ describe Vehicle do
5
+
6
+ it "correctly specializes to the derived class" do
7
+ @car = Car.create(:name => 'MyCar')
8
+ vehicle = Vehicle.order(:id).last
9
+ car = vehicle.specialize
10
+ car.class.name.should eq 'Car'
11
+ car.id.should eq @car.id
12
+
13
+ @motorcycle = MotorCycle.create(:name => 'MyBike')
14
+ vehicle = Vehicle.order(:id).last
15
+ motorcycle = vehicle.specialize
16
+ motorcycle.class.name.should eq 'MotorCycle'
17
+ motorcycle.id.should eq @motorcycle.id
18
+
19
+ @motor_vehicle = MotorVehicle.create(:name => 'MyTrike')
20
+ vehicle = Vehicle.order(:id).last
21
+ motor_vehicle = vehicle.specialize
22
+ motor_vehicle.class.name.should eq 'MotorVehicle'
23
+ motor_vehicle.id.should eq @motor_vehicle.id
24
+ end
25
+
26
+ it "returns the correct type" do
27
+ @car = Car.create(:name => 'MyCar')
28
+ vehicle = Vehicle.order(:id).last
29
+ vehicle.type.should eq 'Car'
30
+
31
+ @motorcycle = MotorCycle.create(:name => 'MyBike')
32
+ vehicle = Vehicle.order(:id).last
33
+ vehicle.type.should eq 'MotorCycle'
34
+
35
+ @motor_vehicle = MotorVehicle.create(:name => 'MyTrike')
36
+ vehicle = Vehicle.order(:id).last
37
+ vehicle.type.should eq 'MotorVehicle'
38
+ end
39
+
40
+ it "also destroys rows belonging to derived classes on destroy" do
41
+ test_destroy_variant(:destroy)
42
+ end
43
+
44
+ it "also destroys rows belonging to derived classes on delete" do
45
+ test_destroy_variant(:delete)
46
+ end
47
+
48
+ it "also destroys rows belonging to derived classes on destroy!" do
49
+ test_destroy_variant(:destroy!) if Vehicle.method_defined?(:destroy!)
50
+ end
51
+
52
+ def test_destroy_variant(method)
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
57
+ vehicle = Vehicle.order(:id).last
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
62
+ # do the same for the space-branch (which has foreign key constraints)
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
67
+ vehicle = Vehicle.order(:id).last
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
72
+ end
73
+
74
+ # simply to show that the gem doesn't interfere with foreign keys
75
+ it "raises an exception on foreign key violation" do
76
+ shuttle = SpaceShuttle.create(:name => 'Discovery')
77
+ expect {
78
+ Vehicle.delete_all
79
+ }.to raise_error
80
+ end
81
+
82
+ it "correctly reports ascendants" do
83
+ Vehicle.cti_ascendants.should eq []
84
+ end
85
+
86
+ it "correctly reports descendants" do
87
+ Vehicle.cti_all_descendants.should eq %w( MotorVehicle Car MotorCycle SpaceShip SpaceShuttle )
88
+ end
89
+
90
+ end
@@ -0,0 +1,40 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ rails_major_version = 3
4
+ rails_major_version = ENV["RAILS_VERSION"][0] unless ENV["RAILS_VERSION"].nil?
5
+ require File.expand_path("../dummy-rails-#{rails_major_version}/config/environment", __FILE__)
6
+ require 'rspec/rails'
7
+ require 'rspec/autorun'
8
+
9
+ # Requires supporting ruby files with custom matchers and macros, etc,
10
+ # in spec/support/ and its subdirectories.
11
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
12
+
13
+ RSpec.configure do |config|
14
+ # ## Mock Framework
15
+ #
16
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
17
+ #
18
+ # config.mock_with :mocha
19
+ # config.mock_with :flexmock
20
+ # config.mock_with :rr
21
+
22
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
23
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
24
+
25
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
26
+ # examples within a transaction, remove the following line or assign false
27
+ # instead of true.
28
+ config.use_transactional_fixtures = true
29
+
30
+ # If true, the base class of anonymous controllers will be inferred
31
+ # automatically. This will be the default behavior in future versions of
32
+ # rspec-rails.
33
+ config.infer_base_class_for_anonymous_controllers = false
34
+
35
+ # Run specs in random order to surface order dependencies. If you find an
36
+ # order dependency and want to debug it, you can fix the order by providing
37
+ # the seed, which is printed after each run.
38
+ # --seed 1234
39
+ config.order = "random"
40
+ end
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dbview_cti
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Michaël Van Damme
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-08-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec-rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: activerecord-postgresql-adapter
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: foreigner
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: This gem implements Class Table Inheritance (CTI) for Rails using database
79
+ views.
80
+ email:
81
+ - michael.vandamme@vub.ac.be
82
+ executables: []
83
+ extensions: []
84
+ extra_rdoc_files: []
85
+ files:
86
+ - .gitignore
87
+ - Gemfile
88
+ - MIT-LICENSE
89
+ - README.md
90
+ - Rakefile
91
+ - dbview_cti.gemspec
92
+ - lib/db_view_cti/connection_adapters/schema_statements.rb
93
+ - lib/db_view_cti/loader.rb
94
+ - lib/db_view_cti/migration/command_recorder.rb
95
+ - lib/db_view_cti/model/cti.rb
96
+ - lib/db_view_cti/model/extensions.rb
97
+ - lib/db_view_cti/names.rb
98
+ - lib/db_view_cti/railtie.rb
99
+ - lib/db_view_cti/sql_generation/migration/base.rb
100
+ - lib/db_view_cti/sql_generation/migration/factory.rb
101
+ - lib/db_view_cti/sql_generation/migration/postgresql.rb
102
+ - lib/db_view_cti/sql_generation/model.rb
103
+ - lib/db_view_cti/version.rb
104
+ - lib/dbview_cti.rb
105
+ - lib/tasks/view-based-cti_tasks.rake
106
+ - spec/dummy-rails-3/.rspec
107
+ - spec/dummy-rails-3/Rakefile
108
+ - spec/dummy-rails-3/app/assets/javascripts/application.js
109
+ - spec/dummy-rails-3/app/assets/stylesheets/application.css
110
+ - spec/dummy-rails-3/app/controllers/application_controller.rb
111
+ - spec/dummy-rails-3/app/helpers/application_helper.rb
112
+ - spec/dummy-rails-3/app/mailers/.gitkeep
113
+ - spec/dummy-rails-3/app/models/.gitkeep
114
+ - spec/dummy-rails-3/app/models/car.rb
115
+ - spec/dummy-rails-3/app/models/motor_cycle.rb
116
+ - spec/dummy-rails-3/app/models/motor_vehicle.rb
117
+ - spec/dummy-rails-3/app/models/rocket_engine.rb
118
+ - spec/dummy-rails-3/app/models/space_ship.rb
119
+ - spec/dummy-rails-3/app/models/space_shuttle.rb
120
+ - spec/dummy-rails-3/app/models/vehicle.rb
121
+ - spec/dummy-rails-3/app/views/layouts/application.html.erb
122
+ - spec/dummy-rails-3/config.ru
123
+ - spec/dummy-rails-3/config/application.rb
124
+ - spec/dummy-rails-3/config/boot.rb
125
+ - spec/dummy-rails-3/config/database.yml
126
+ - spec/dummy-rails-3/config/environment.rb
127
+ - spec/dummy-rails-3/config/environments/development.rb
128
+ - spec/dummy-rails-3/config/environments/production.rb
129
+ - spec/dummy-rails-3/config/environments/test.rb
130
+ - spec/dummy-rails-3/config/initializers/backtrace_silencers.rb
131
+ - spec/dummy-rails-3/config/initializers/dbview_cti.rb
132
+ - spec/dummy-rails-3/config/initializers/inflections.rb
133
+ - spec/dummy-rails-3/config/initializers/mime_types.rb
134
+ - spec/dummy-rails-3/config/initializers/secret_token.rb
135
+ - spec/dummy-rails-3/config/initializers/session_store.rb
136
+ - spec/dummy-rails-3/config/initializers/wrap_parameters.rb
137
+ - spec/dummy-rails-3/config/locales/en.yml
138
+ - spec/dummy-rails-3/config/routes.rb
139
+ - spec/dummy-rails-3/db/migrate/20130711214909_create_vehicles.rb
140
+ - spec/dummy-rails-3/db/migrate/20130713133605_create_motor_vehicles.rb
141
+ - spec/dummy-rails-3/db/migrate/20130713133705_create_cars.rb
142
+ - spec/dummy-rails-3/db/migrate/20130713153631_create_motor_cycles.rb
143
+ - spec/dummy-rails-3/db/migrate/20130816022212_create_space_ships.rb
144
+ - spec/dummy-rails-3/db/migrate/20130817014120_create_space_shuttles.rb
145
+ - spec/dummy-rails-3/db/migrate/20130817024220_create_rocket_engines.rb
146
+ - spec/dummy-rails-3/db/migrate/20130819040414_add_reliability_to_space_ships.rb
147
+ - spec/dummy-rails-3/db/schema.rb
148
+ - spec/dummy-rails-3/lib/assets/.gitkeep
149
+ - spec/dummy-rails-3/log/.gitkeep
150
+ - spec/dummy-rails-3/public/404.html
151
+ - spec/dummy-rails-3/public/422.html
152
+ - spec/dummy-rails-3/public/500.html
153
+ - spec/dummy-rails-3/public/favicon.ico
154
+ - spec/dummy-rails-3/script/rails
155
+ - spec/dummy-rails-4/.rspec
156
+ - spec/dummy-rails-4/Rakefile
157
+ - spec/dummy-rails-4/app/assets/images/.keep
158
+ - spec/dummy-rails-4/app/assets/javascripts/application.js
159
+ - spec/dummy-rails-4/app/assets/stylesheets/application.css
160
+ - spec/dummy-rails-4/app/controllers/application_controller.rb
161
+ - spec/dummy-rails-4/app/controllers/concerns/.keep
162
+ - spec/dummy-rails-4/app/helpers/application_helper.rb
163
+ - spec/dummy-rails-4/app/mailers/.keep
164
+ - spec/dummy-rails-4/app/views/layouts/application.html.erb
165
+ - spec/dummy-rails-4/bin/bundle
166
+ - spec/dummy-rails-4/bin/rails
167
+ - spec/dummy-rails-4/bin/rake
168
+ - spec/dummy-rails-4/config.ru
169
+ - spec/dummy-rails-4/config/application.rb
170
+ - spec/dummy-rails-4/config/boot.rb
171
+ - spec/dummy-rails-4/config/database.yml
172
+ - spec/dummy-rails-4/config/environment.rb
173
+ - spec/dummy-rails-4/config/environments/development.rb
174
+ - spec/dummy-rails-4/config/environments/production.rb
175
+ - spec/dummy-rails-4/config/environments/test.rb
176
+ - spec/dummy-rails-4/config/initializers/backtrace_silencers.rb
177
+ - spec/dummy-rails-4/config/initializers/dbview_cti.rb
178
+ - spec/dummy-rails-4/config/initializers/filter_parameter_logging.rb
179
+ - spec/dummy-rails-4/config/initializers/inflections.rb
180
+ - spec/dummy-rails-4/config/initializers/mime_types.rb
181
+ - spec/dummy-rails-4/config/initializers/secret_token.rb
182
+ - spec/dummy-rails-4/config/initializers/session_store.rb
183
+ - spec/dummy-rails-4/config/initializers/wrap_parameters.rb
184
+ - spec/dummy-rails-4/config/locales/en.yml
185
+ - spec/dummy-rails-4/config/routes.rb
186
+ - spec/dummy-rails-4/db/schema.rb
187
+ - spec/dummy-rails-4/lib/assets/.keep
188
+ - spec/dummy-rails-4/log/.keep
189
+ - spec/dummy-rails-4/public/404.html
190
+ - spec/dummy-rails-4/public/422.html
191
+ - spec/dummy-rails-4/public/500.html
192
+ - spec/dummy-rails-4/public/favicon.ico
193
+ - spec/models/car_spec.rb
194
+ - spec/models/motor_vehicle_spec.rb
195
+ - spec/models/space_shuttle_spec.rb
196
+ - spec/models/vehicle_spec.rb
197
+ - spec/spec_helper.rb
198
+ homepage: https://github.com/mvdamme/dbview_cti
199
+ licenses: []
200
+ post_install_message:
201
+ rdoc_options: []
202
+ require_paths:
203
+ - lib
204
+ required_ruby_version: !ruby/object:Gem::Requirement
205
+ none: false
206
+ requirements:
207
+ - - ! '>='
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ segments:
211
+ - 0
212
+ hash: -2210923641893845422
213
+ required_rubygems_version: !ruby/object:Gem::Requirement
214
+ none: false
215
+ requirements:
216
+ - - ! '>='
217
+ - !ruby/object:Gem::Version
218
+ version: '0'
219
+ segments:
220
+ - 0
221
+ hash: -2210923641893845422
222
+ requirements: []
223
+ rubyforge_project:
224
+ rubygems_version: 1.8.25
225
+ signing_key:
226
+ specification_version: 3
227
+ summary: Class Table Inheritance (CTI) for Rails.
228
+ test_files: []