polymorphic_model 0.0.5 → 0.0.6
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.
- data/README.rdoc +29 -1
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/polymorphic_model.gemspec +4 -1
- metadata +11 -1
data/README.rdoc
CHANGED
@@ -1,6 +1,34 @@
|
|
1
1
|
= polymorphic_model
|
2
2
|
|
3
|
+
Not everybody likes Single Table Ineritance or just not everywhere can be used.
|
3
4
|
This is simple substitute for ActiveRecord's STI mechanism.
|
5
|
+
It uses defined column to determine object type.
|
6
|
+
|
7
|
+
Simple use case:
|
8
|
+
|
9
|
+
# migration:
|
10
|
+
|
11
|
+
create_table :configurations do |t|
|
12
|
+
t.string :entry_type
|
13
|
+
t.string :value
|
14
|
+
end
|
15
|
+
|
16
|
+
# model
|
17
|
+
|
18
|
+
class Configuration < ActiveRecord::Base
|
19
|
+
polymorphic_model :with_type_column => :entry_type
|
20
|
+
define_type :website_name, :singleton => true, :autocreate => true
|
21
|
+
define_type :author
|
22
|
+
end
|
23
|
+
|
24
|
+
# example usage
|
25
|
+
|
26
|
+
@name = Configuration.website_name.value
|
27
|
+
@authors = Configuration.author.map(&:value)
|
28
|
+
|
29
|
+
This is just example. It can be used wherever STI is too drastically splits model file
|
30
|
+
or more than one controller is not what you actually want.
|
31
|
+
You can avoid also problems with polymorphic_path.
|
4
32
|
|
5
33
|
== Note on Patches/Pull Requests
|
6
34
|
|
@@ -15,4 +43,4 @@ This is simple substitute for ActiveRecord's STI mechanism.
|
|
15
43
|
|
16
44
|
== Copyright
|
17
45
|
|
18
|
-
|
46
|
+
Distributed under MIT license. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -11,6 +11,7 @@ begin
|
|
11
11
|
gem.homepage = "http://github.com/sevos/polymorphic_model"
|
12
12
|
gem.authors = ["Artur Roszczyk"]
|
13
13
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
|
+
gem.add_development_dependency "rspec-rails", ">= 1.2.9"
|
14
15
|
gem.add_development_dependency "sqlite3-ruby", ">= 1.2.4"
|
15
16
|
|
16
17
|
gem.add_dependency "activerecord", ">= 2.3.4"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
data/polymorphic_model.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{polymorphic_model}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Artur Roszczyk"]
|
@@ -53,15 +53,18 @@ Gem::Specification.new do |s|
|
|
53
53
|
|
54
54
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
55
55
|
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
56
|
+
s.add_development_dependency(%q<rspec-rails>, [">= 1.2.9"])
|
56
57
|
s.add_development_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
|
57
58
|
s.add_runtime_dependency(%q<activerecord>, [">= 2.3.4"])
|
58
59
|
else
|
59
60
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
61
|
+
s.add_dependency(%q<rspec-rails>, [">= 1.2.9"])
|
60
62
|
s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
|
61
63
|
s.add_dependency(%q<activerecord>, [">= 2.3.4"])
|
62
64
|
end
|
63
65
|
else
|
64
66
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
67
|
+
s.add_dependency(%q<rspec-rails>, [">= 1.2.9"])
|
65
68
|
s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
|
66
69
|
s.add_dependency(%q<activerecord>, [">= 2.3.4"])
|
67
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polymorphic_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artur Roszczyk
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.2.9
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec-rails
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.2.9
|
34
|
+
version:
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: sqlite3-ruby
|
27
37
|
type: :development
|