acts_as_relation 0.1.2 → 0.1.3
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.
- checksums.yaml +7 -0
- data/.gitignore +0 -1
- data/Gemfile.lock +111 -0
- data/README.rdoc +17 -11
- data/acts_as_relation.gemspec +2 -2
- data/lib/active_record/acts_as_relation.rb +1 -1
- data/lib/version.rb +1 -1
- metadata +76 -46
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
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
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
data/acts_as_relation.gemspec
CHANGED
@@ -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
|
data/lib/version.rb
CHANGED
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.
|
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:
|
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:
|
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: '
|
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: '
|
40
|
+
version: '3.2'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
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:
|
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: '
|
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: '
|
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:
|
194
|
+
rubygems_version: 2.0.3
|
210
195
|
signing_key:
|
211
|
-
specification_version:
|
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
|