updateable_views_inheritance 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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: