acts_as_relation 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 55ed6cd1d0845890b4730676635daaf29fe7c17f
4
+ data.tar.gz: 7755b934e45948258c78d56e973aaaa174a9eba5
5
+ SHA512:
6
+ metadata.gz: 559072b5f29eedee05fb4c5fb9418aa58309cae414404d0c9ac0ef1e039b67bd64a07170952af1be665880f2c04288692749242bd3a8f31759731748c60120b0
7
+ data.tar.gz: 1d11850514b0edbe7019eea0fc83727b53db8f222c493b4523e543fa45b8435da9db14e743965f1dea6102513dc300d92e658dee262c6f3a6237bc907af63b5b
data/.gitignore CHANGED
@@ -1,7 +1,6 @@
1
1
  *.gem
2
2
  .bundle
3
3
  .rvmrc
4
- Gemfile.lock
5
4
  pkg/*
6
5
  tmp/*
7
6
  doc/*
data/Gemfile.lock ADDED
@@ -0,0 +1,111 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ acts_as_relation (0.1.2)
5
+ activerecord (~> 3.2)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actionmailer (3.2.13)
11
+ actionpack (= 3.2.13)
12
+ mail (~> 2.5.3)
13
+ actionpack (3.2.13)
14
+ activemodel (= 3.2.13)
15
+ activesupport (= 3.2.13)
16
+ builder (~> 3.0.0)
17
+ erubis (~> 2.7.0)
18
+ journey (~> 1.0.4)
19
+ rack (~> 1.4.5)
20
+ rack-cache (~> 1.2)
21
+ rack-test (~> 0.6.1)
22
+ sprockets (~> 2.2.1)
23
+ activemodel (3.2.13)
24
+ activesupport (= 3.2.13)
25
+ builder (~> 3.0.0)
26
+ activerecord (3.2.13)
27
+ activemodel (= 3.2.13)
28
+ activesupport (= 3.2.13)
29
+ arel (~> 3.0.2)
30
+ tzinfo (~> 0.3.29)
31
+ activeresource (3.2.13)
32
+ activemodel (= 3.2.13)
33
+ activesupport (= 3.2.13)
34
+ activesupport (3.2.13)
35
+ i18n (= 0.6.1)
36
+ multi_json (~> 1.0)
37
+ arel (3.0.2)
38
+ builder (3.0.4)
39
+ database_cleaner (1.0.1)
40
+ diff-lcs (1.2.4)
41
+ erubis (2.7.0)
42
+ hike (1.2.3)
43
+ i18n (0.6.1)
44
+ journey (1.0.4)
45
+ json (1.8.0)
46
+ mail (2.5.4)
47
+ mime-types (~> 1.16)
48
+ treetop (~> 1.4.8)
49
+ mime-types (1.23)
50
+ multi_json (1.7.7)
51
+ polyglot (0.3.3)
52
+ rack (1.4.5)
53
+ rack-cache (1.2)
54
+ rack (>= 0.4)
55
+ rack-ssl (1.3.3)
56
+ rack
57
+ rack-test (0.6.2)
58
+ rack (>= 1.0)
59
+ rails (3.2.13)
60
+ actionmailer (= 3.2.13)
61
+ actionpack (= 3.2.13)
62
+ activerecord (= 3.2.13)
63
+ activeresource (= 3.2.13)
64
+ activesupport (= 3.2.13)
65
+ bundler (~> 1.0)
66
+ railties (= 3.2.13)
67
+ railties (3.2.13)
68
+ actionpack (= 3.2.13)
69
+ activesupport (= 3.2.13)
70
+ rack-ssl (~> 1.3.2)
71
+ rake (>= 0.8.7)
72
+ rdoc (~> 3.4)
73
+ thor (>= 0.14.6, < 2.0)
74
+ rake (10.1.0)
75
+ rdoc (3.12.2)
76
+ json (~> 1.4)
77
+ rspec-core (2.13.1)
78
+ rspec-expectations (2.13.0)
79
+ diff-lcs (>= 1.1.3, < 2.0)
80
+ rspec-mocks (2.13.1)
81
+ rspec-rails (2.13.2)
82
+ actionpack (>= 3.0)
83
+ activesupport (>= 3.0)
84
+ railties (>= 3.0)
85
+ rspec-core (~> 2.13.0)
86
+ rspec-expectations (~> 2.13.0)
87
+ rspec-mocks (~> 2.13.0)
88
+ sprockets (2.2.2)
89
+ hike (~> 1.2)
90
+ multi_json (~> 1.0)
91
+ rack (~> 1.0)
92
+ tilt (~> 1.1, != 1.3.0)
93
+ sqlite3 (1.3.7)
94
+ thor (0.18.1)
95
+ tilt (1.4.1)
96
+ treetop (1.4.14)
97
+ polyglot
98
+ polyglot (>= 0.3.1)
99
+ tzinfo (0.3.37)
100
+
101
+ PLATFORMS
102
+ ruby
103
+
104
+ DEPENDENCIES
105
+ acts_as_relation!
106
+ bundler
107
+ database_cleaner
108
+ rails (~> 3.2)
109
+ rake
110
+ rspec-rails
111
+ sqlite3
data/README.rdoc CHANGED
@@ -1,18 +1,24 @@
1
1
  = ActsAsRelation
2
+ This gem helps implement multiple-table-inheritance (MTI) methods to your ActiveRecord models.
3
+ By default, ActiveRecord only supports single-table inheritance (STI).
4
+ MTI gives you the benefits of STI but without having to place dozens of empty fields into a single table.
2
5
 
3
- A +acts_as+ relationship sets up a one-to-one connection with another model,
4
- such that declaring model inherits from other model (with separate database
5
- tabels). For example in a shop all products have common attributes (+name+,
6
- +price+, +image+ ...), while each type of them has their specific attributes,
6
+ Take a traditional e-commerce application for example...
7
+ A product has common attributes (+name+, +price+, +image+ ...),
8
+ while each type of product has its own attributes...
7
9
  +pen+ has +color+, +book+ has +author+ and +publisher+ and so on.
8
10
 
9
- ActiveRecord only supports singletable inheritance, but with single table inheritance
10
- number of attributes on parent model (product in this example) grow exponentially,
11
- and must of them will always stay +NULL+.
12
-
13
- +acts_as+ use a polymorphic +has_one+
14
- association to simulate a multi-table inheritance. For the shop example you'd
15
- declare the product as a +supermodel+ and all types of it as +acts_as+ +:product+
11
+ == Installation
12
+ gem install acts_as_relation
13
+ or within Gemfile
14
+ gem "acts_as_relation"
15
+ and
16
+ $ bundle install
17
+
18
+ == Usage
19
+ +acts_as_relation+ uses a polymorphic +has_one+
20
+ association to simulate multiple-table inheritance.
21
+ For the e-commerce example you would declare the product as a +supermodel+ and all types of it as +acts_as+ +:product+
16
22
  (if you prefer you can use their aliases +is_a+ and +is_a_superclass+)
17
23
 
18
24
  class Product < ActiveRecord::Base
@@ -24,10 +24,10 @@ Gem::Specification.new do |s|
24
24
 
25
25
  # Dependencies (installed via 'bundle install')...
26
26
  s.add_development_dependency "rake"
27
+ s.add_development_dependency "rails", "~> 3.2"
27
28
  s.add_development_dependency "bundler"
28
29
  s.add_development_dependency "sqlite3"
29
30
  s.add_development_dependency "rspec-rails"
30
- s.add_development_dependency "rails"
31
31
  s.add_development_dependency "database_cleaner"
32
- s.add_dependency "activerecord"
32
+ s.add_dependency "activerecord", "~> 3.2"
33
33
  end
@@ -102,7 +102,7 @@ module ActiveRecord
102
102
  class_eval "default_scope joins(:#{name})"
103
103
  end
104
104
 
105
- class_eval "default_scope readonly(false)"
105
+ class_eval "default_scope includes(:#{name})"
106
106
 
107
107
  code = <<-EndCode
108
108
  def acts_as_other_model?
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module ActsAsRelation
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,128 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_relation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
5
- prerelease:
4
+ version: 0.1.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Hassan Zamani
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-07-05 00:00:00.000000000 Z
11
+ date: 2013-07-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: bundler
28
+ name: rails
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: '3.2'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: '3.2'
46
41
  - !ruby/object:Gem::Dependency
47
- name: sqlite3
42
+ name: bundler
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
- name: rspec-rails
56
+ name: sqlite3
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
- name: rails
70
+ name: rspec-rails
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: database_cleaner
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: activerecord
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ~>
116
102
  - !ruby/object:Gem::Version
117
- version: '0'
103
+ version: '3.2'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ~>
124
109
  - !ruby/object:Gem::Version
125
- version: '0'
110
+ version: '3.2'
126
111
  description: This 'acts_as' extension provides multi-table inheritance for rails models.
127
112
  email: hsn.zamani@gmail.com
128
113
  executables: []
@@ -132,6 +117,7 @@ files:
132
117
  - .gitignore
133
118
  - .rspec
134
119
  - Gemfile
120
+ - Gemfile.lock
135
121
  - MIT-LICENSE
136
122
  - README.rdoc
137
123
  - Rakefile
@@ -188,26 +174,70 @@ files:
188
174
  - spec/spec_helper.rb
189
175
  homepage: http://github.com/hzamani/acts_as_relation
190
176
  licenses: []
177
+ metadata: {}
191
178
  post_install_message:
192
179
  rdoc_options: []
193
180
  require_paths:
194
181
  - lib
195
182
  required_ruby_version: !ruby/object:Gem::Requirement
196
- none: false
197
183
  requirements:
198
- - - ! '>='
184
+ - - '>='
199
185
  - !ruby/object:Gem::Version
200
186
  version: '0'
201
187
  required_rubygems_version: !ruby/object:Gem::Requirement
202
- none: false
203
188
  requirements:
204
- - - ! '>='
189
+ - - '>='
205
190
  - !ruby/object:Gem::Version
206
191
  version: '0'
207
192
  requirements: []
208
193
  rubyforge_project:
209
- rubygems_version: 1.8.24
194
+ rubygems_version: 2.0.3
210
195
  signing_key:
211
- specification_version: 3
196
+ specification_version: 4
212
197
  summary: Easy multi-table inheritance for rails
213
- test_files: []
198
+ test_files:
199
+ - spec/acts_as_relation_spec.rb
200
+ - spec/acts_as_superclass_spec.rb
201
+ - spec/dummy/.rspec
202
+ - spec/dummy/README.rdoc
203
+ - spec/dummy/Rakefile
204
+ - spec/dummy/app/assets/javascripts/application.js
205
+ - spec/dummy/app/assets/stylesheets/application.css
206
+ - spec/dummy/app/controllers/application_controller.rb
207
+ - spec/dummy/app/helpers/application_helper.rb
208
+ - spec/dummy/app/mailers/.gitkeep
209
+ - spec/dummy/app/models/.gitkeep
210
+ - spec/dummy/app/models/pen.rb
211
+ - spec/dummy/app/models/pencil.rb
212
+ - spec/dummy/app/models/product.rb
213
+ - spec/dummy/app/models/store.rb
214
+ - spec/dummy/app/views/layouts/application.html.erb
215
+ - spec/dummy/config.ru
216
+ - spec/dummy/config/application.rb
217
+ - spec/dummy/config/boot.rb
218
+ - spec/dummy/config/database.yml
219
+ - spec/dummy/config/environment.rb
220
+ - spec/dummy/config/environments/development.rb
221
+ - spec/dummy/config/environments/production.rb
222
+ - spec/dummy/config/environments/test.rb
223
+ - spec/dummy/config/initializers/backtrace_silencers.rb
224
+ - spec/dummy/config/initializers/inflections.rb
225
+ - spec/dummy/config/initializers/mime_types.rb
226
+ - spec/dummy/config/initializers/secret_token.rb
227
+ - spec/dummy/config/initializers/session_store.rb
228
+ - spec/dummy/config/initializers/wrap_parameters.rb
229
+ - spec/dummy/config/locales/en.yml
230
+ - spec/dummy/config/routes.rb
231
+ - spec/dummy/db/migrate/001_create_stores.rb
232
+ - spec/dummy/db/migrate/002_create_products.rb
233
+ - spec/dummy/db/migrate/003_create_pens.rb
234
+ - spec/dummy/db/migrate/004_create_pencils.rb
235
+ - spec/dummy/db/schema.rb
236
+ - spec/dummy/lib/assets/.gitkeep
237
+ - spec/dummy/log/.gitkeep
238
+ - spec/dummy/public/404.html
239
+ - spec/dummy/public/422.html
240
+ - spec/dummy/public/500.html
241
+ - spec/dummy/public/favicon.ico
242
+ - spec/dummy/script/rails
243
+ - spec/spec_helper.rb