updateable_views_inheritance 1.1.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 (61) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +4 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.rdoc +110 -0
  5. data/Rakefile +35 -0
  6. data/doc/template/horo.rb +613 -0
  7. data/lib/generators/updateable_views_inheritance_migration/USAGE +8 -0
  8. data/lib/generators/updateable_views_inheritance_migration/templates/migration.rb +17 -0
  9. data/lib/generators/updateable_views_inheritance_migration/uvi_migration_generator.rb +12 -0
  10. data/lib/updateable_views_inheritance.rb +5 -0
  11. data/lib/updateable_views_inheritance/active_record.rb +16 -0
  12. data/lib/updateable_views_inheritance/postgresql_adapter.rb +450 -0
  13. data/lib/updateable_views_inheritance/version.rb +3 -0
  14. data/tasks/updateable_views_inheritance_tasks.rake +19 -0
  15. data/test/app/models/bicycle.rb +3 -0
  16. data/test/app/models/boat.rb +3 -0
  17. data/test/app/models/car.rb +3 -0
  18. data/test/app/models/electric_locomotive.rb +3 -0
  19. data/test/app/models/electric_train.rb +3 -0
  20. data/test/app/models/locomotive.rb +3 -0
  21. data/test/app/models/maglev_locomotive.rb +3 -0
  22. data/test/app/models/maglev_train.rb +3 -0
  23. data/test/app/models/rack_locomotive.rb +3 -0
  24. data/test/app/models/rack_train.rb +3 -0
  25. data/test/app/models/railed_vehicle.rb +3 -0
  26. data/test/app/models/steam_locomotive.rb +3 -0
  27. data/test/app/models/steam_train.rb +3 -0
  28. data/test/app/models/train.rb +3 -0
  29. data/test/app/models/vehicle.rb +3 -0
  30. data/test/app/models/wheeled_vehicle.rb +3 -0
  31. data/test/config/database.yml +19 -0
  32. data/test/config/environment.rb +14 -0
  33. data/test/config/routes.rb +3 -0
  34. data/test/config/schema.rb +3 -0
  35. data/test/content_test.rb +66 -0
  36. data/test/database.yml +7 -0
  37. data/test/deep_hierarchy_test.rb +64 -0
  38. data/test/fixtures/bicycles.yml +6 -0
  39. data/test/fixtures/boats.yml +6 -0
  40. data/test/fixtures/cars.yml +12 -0
  41. data/test/fixtures/electric_locomotives.yml +6 -0
  42. data/test/fixtures/electric_trains.yml +7 -0
  43. data/test/fixtures/maglev_locomotives.yml +7 -0
  44. data/test/fixtures/maglev_trains.yml +8 -0
  45. data/test/fixtures/migrations/1_add_class_table_inheritance.rb +15 -0
  46. data/test/fixtures/migrations/2_create_with_default_table.rb +19 -0
  47. data/test/fixtures/migrations/3_create_with_explicit_table.rb +11 -0
  48. data/test/fixtures/migrations/4_create_deeper_hierarchy.rb +11 -0
  49. data/test/fixtures/migrations/5_default_column_values.rb +13 -0
  50. data/test/fixtures/migrations/6_single_table_inheritance_view.rb +10 -0
  51. data/test/fixtures/migrations/7_second_deep_hierarchy.rb +70 -0
  52. data/test/fixtures/migrations/8_second_single_table_inheritance_view.rb +10 -0
  53. data/test/fixtures/rack_trains.yml +7 -0
  54. data/test/fixtures/steam_locomotives.yml +7 -0
  55. data/test/fixtures/steam_trains.yml +8 -0
  56. data/test/migration_test.rb +30 -0
  57. data/test/schema_test.rb +179 -0
  58. data/test/single_table_inheritance.rb +141 -0
  59. data/test/test_helper.rb +80 -0
  60. data/updateable_views_inheritance.gemspec +26 -0
  61. metadata +219 -0
@@ -0,0 +1,80 @@
1
+ class Rails
2
+ def self.root
3
+ File.dirname(__FILE__)
4
+ end
5
+ end
6
+
7
+ require 'test/unit'
8
+ require 'rubygems'
9
+ require 'active_record'
10
+ require 'active_record/fixtures'
11
+
12
+ begin
13
+ require 'ruby-debug'
14
+ rescue LoadError
15
+ # no debugger available
16
+ end
17
+
18
+
19
+ config = ActiveRecord::Base.configurations = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
20
+ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
21
+ ActiveRecord::Base.establish_connection(config[ENV['DB']] || config['postgresql'])
22
+
23
+ require 'updateable_views_inheritance'
24
+
25
+ class ActiveSupport::TestCase #:nodoc:
26
+ include ActiveRecord::TestFixtures
27
+ self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/"
28
+ ActiveRecord::Migration.verbose = false
29
+ end
30
+
31
+ class Locomotive < ActiveRecord::Base
32
+ abstract_class = true;
33
+ end
34
+ class SteamLocomotive < Locomotive
35
+ self.table_name = 'steam_locomotives'
36
+ end
37
+ class ElectricLocomotive < Locomotive
38
+ self.table_name = 'electric_locomotives'
39
+ end
40
+ class MaglevLocomotive < ElectricLocomotive
41
+ self.table_name = 'maglev_locomotives'
42
+ end
43
+ class RackLocomotive < Locomotive
44
+ self.table_name = 'rack_locomotives'
45
+ end
46
+
47
+ class Vehicle < ActiveRecord::Base
48
+ abstract_class = true;
49
+ self.inheritance_column = :vehicle_type
50
+ end
51
+ class WheeledVehicle < Vehicle
52
+ self.table_name = 'wheeled_vehicles'
53
+ end
54
+ class RailedVehicle < Vehicle
55
+ self.table_name = 'railed_vehicles'
56
+ end
57
+ class Boat < Vehicle
58
+ self.table_name = 'boats'
59
+ end
60
+ class Car < WheeledVehicle
61
+ self.table_name = 'cars'
62
+ end
63
+ class Bicycle < WheeledVehicle
64
+ self.table_name = 'bicycles'
65
+ end
66
+ class Train < RailedVehicle
67
+ self.table_name = 'trains'
68
+ end
69
+ class SteamTrain < Train
70
+ self.table_name = 'steam_trains'
71
+ end
72
+ class RackTrain < Train
73
+ self.table_name = 'rack_trains'
74
+ end
75
+ class ElectricTrain < Train
76
+ self.table_name = 'electric_trains'
77
+ end
78
+ class MaglevTrain < ElectricTrain
79
+ self.table_name = 'maglev_trains'
80
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'updateable_views_inheritance/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "updateable_views_inheritance"
8
+ s.version = Uvi::VERSION
9
+ s.authors = ["Sava Chankov", "Denitsa Belogusheva"]
10
+ s.email = ["sava@tutuf.com", "deni@tutuf.com"]
11
+ s.homepage = "http://github.com/tutuf/updateable_views_inheritance"
12
+ s.summary = %q{Class table inheritance for ActiveRecord}
13
+ s.description = %q{Uvi relies on updatable views in the database that join parent and children tables}
14
+ s.license = "MIT"
15
+
16
+ s.files = `git ls-files`.split($/)
17
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency "activerecord", "~>3.2.12"
22
+ s.add_dependency "pg"
23
+
24
+ s.add_development_dependency "bundler", "~>1.3"
25
+ s.add_development_dependency "rake"
26
+ end
metadata ADDED
@@ -0,0 +1,219 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: updateable_views_inheritance
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Sava Chankov
9
+ - Denitsa Belogusheva
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-06-14 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activerecord
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.12
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 3.2.12
31
+ - !ruby/object:Gem::Dependency
32
+ name: pg
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '1.3'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ description: Uvi relies on updatable views in the database that join parent and children
80
+ tables
81
+ email:
82
+ - sava@tutuf.com
83
+ - deni@tutuf.com
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - .gitignore
89
+ - Gemfile
90
+ - MIT-LICENSE
91
+ - README.rdoc
92
+ - Rakefile
93
+ - doc/template/horo.rb
94
+ - lib/generators/updateable_views_inheritance_migration/USAGE
95
+ - lib/generators/updateable_views_inheritance_migration/templates/migration.rb
96
+ - lib/generators/updateable_views_inheritance_migration/uvi_migration_generator.rb
97
+ - lib/updateable_views_inheritance.rb
98
+ - lib/updateable_views_inheritance/active_record.rb
99
+ - lib/updateable_views_inheritance/postgresql_adapter.rb
100
+ - lib/updateable_views_inheritance/version.rb
101
+ - tasks/updateable_views_inheritance_tasks.rake
102
+ - test/app/models/bicycle.rb
103
+ - test/app/models/boat.rb
104
+ - test/app/models/car.rb
105
+ - test/app/models/electric_locomotive.rb
106
+ - test/app/models/electric_train.rb
107
+ - test/app/models/locomotive.rb
108
+ - test/app/models/maglev_locomotive.rb
109
+ - test/app/models/maglev_train.rb
110
+ - test/app/models/rack_locomotive.rb
111
+ - test/app/models/rack_train.rb
112
+ - test/app/models/railed_vehicle.rb
113
+ - test/app/models/steam_locomotive.rb
114
+ - test/app/models/steam_train.rb
115
+ - test/app/models/train.rb
116
+ - test/app/models/vehicle.rb
117
+ - test/app/models/wheeled_vehicle.rb
118
+ - test/config/database.yml
119
+ - test/config/environment.rb
120
+ - test/config/routes.rb
121
+ - test/config/schema.rb
122
+ - test/content_test.rb
123
+ - test/database.yml
124
+ - test/deep_hierarchy_test.rb
125
+ - test/fixtures/bicycles.yml
126
+ - test/fixtures/boats.yml
127
+ - test/fixtures/cars.yml
128
+ - test/fixtures/electric_locomotives.yml
129
+ - test/fixtures/electric_trains.yml
130
+ - test/fixtures/maglev_locomotives.yml
131
+ - test/fixtures/maglev_trains.yml
132
+ - test/fixtures/migrations/1_add_class_table_inheritance.rb
133
+ - test/fixtures/migrations/2_create_with_default_table.rb
134
+ - test/fixtures/migrations/3_create_with_explicit_table.rb
135
+ - test/fixtures/migrations/4_create_deeper_hierarchy.rb
136
+ - test/fixtures/migrations/5_default_column_values.rb
137
+ - test/fixtures/migrations/6_single_table_inheritance_view.rb
138
+ - test/fixtures/migrations/7_second_deep_hierarchy.rb
139
+ - test/fixtures/migrations/8_second_single_table_inheritance_view.rb
140
+ - test/fixtures/rack_trains.yml
141
+ - test/fixtures/steam_locomotives.yml
142
+ - test/fixtures/steam_trains.yml
143
+ - test/migration_test.rb
144
+ - test/schema_test.rb
145
+ - test/single_table_inheritance.rb
146
+ - test/test_helper.rb
147
+ - updateable_views_inheritance.gemspec
148
+ homepage: http://github.com/tutuf/updateable_views_inheritance
149
+ licenses:
150
+ - MIT
151
+ post_install_message:
152
+ rdoc_options: []
153
+ require_paths:
154
+ - lib
155
+ required_ruby_version: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubyforge_project:
169
+ rubygems_version: 1.8.25
170
+ signing_key:
171
+ specification_version: 3
172
+ summary: Class table inheritance for ActiveRecord
173
+ test_files:
174
+ - test/app/models/bicycle.rb
175
+ - test/app/models/boat.rb
176
+ - test/app/models/car.rb
177
+ - test/app/models/electric_locomotive.rb
178
+ - test/app/models/electric_train.rb
179
+ - test/app/models/locomotive.rb
180
+ - test/app/models/maglev_locomotive.rb
181
+ - test/app/models/maglev_train.rb
182
+ - test/app/models/rack_locomotive.rb
183
+ - test/app/models/rack_train.rb
184
+ - test/app/models/railed_vehicle.rb
185
+ - test/app/models/steam_locomotive.rb
186
+ - test/app/models/steam_train.rb
187
+ - test/app/models/train.rb
188
+ - test/app/models/vehicle.rb
189
+ - test/app/models/wheeled_vehicle.rb
190
+ - test/config/database.yml
191
+ - test/config/environment.rb
192
+ - test/config/routes.rb
193
+ - test/config/schema.rb
194
+ - test/content_test.rb
195
+ - test/database.yml
196
+ - test/deep_hierarchy_test.rb
197
+ - test/fixtures/bicycles.yml
198
+ - test/fixtures/boats.yml
199
+ - test/fixtures/cars.yml
200
+ - test/fixtures/electric_locomotives.yml
201
+ - test/fixtures/electric_trains.yml
202
+ - test/fixtures/maglev_locomotives.yml
203
+ - test/fixtures/maglev_trains.yml
204
+ - test/fixtures/migrations/1_add_class_table_inheritance.rb
205
+ - test/fixtures/migrations/2_create_with_default_table.rb
206
+ - test/fixtures/migrations/3_create_with_explicit_table.rb
207
+ - test/fixtures/migrations/4_create_deeper_hierarchy.rb
208
+ - test/fixtures/migrations/5_default_column_values.rb
209
+ - test/fixtures/migrations/6_single_table_inheritance_view.rb
210
+ - test/fixtures/migrations/7_second_deep_hierarchy.rb
211
+ - test/fixtures/migrations/8_second_single_table_inheritance_view.rb
212
+ - test/fixtures/rack_trains.yml
213
+ - test/fixtures/steam_locomotives.yml
214
+ - test/fixtures/steam_trains.yml
215
+ - test/migration_test.rb
216
+ - test/schema_test.rb
217
+ - test/single_table_inheritance.rb
218
+ - test/test_helper.rb
219
+ has_rdoc: