has_eav 1.1.5 → 1.2.0
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/Gemfile +3 -3
- data/Gemfile.lock +65 -58
- data/README.rdoc +12 -0
- data/Rakefile +0 -7
- data/VERSION +1 -1
- data/has_eav.gemspec +12 -43
- data/lib/has_eav.rb +35 -21
- metadata +83 -152
- data/test/log/development.log +0 -4
data/Gemfile
CHANGED
|
@@ -6,9 +6,9 @@ gem "activerecord", "~> 3.0"
|
|
|
6
6
|
# Include everything needed to run rake, tests, features, etc.
|
|
7
7
|
group :development do
|
|
8
8
|
gem "shoulda", ">= 0"
|
|
9
|
-
gem "bundler", "~> 1.
|
|
10
|
-
gem "jeweler", "~> 1.
|
|
11
|
-
gem "
|
|
9
|
+
gem "bundler", "~> 1.1"
|
|
10
|
+
gem "jeweler", "~> 1.8"
|
|
11
|
+
gem "simplecov", ">= 0"
|
|
12
12
|
gem "rails", "~> 3.0"
|
|
13
13
|
gem "sqlite3-ruby", :require => "sqlite3"
|
|
14
14
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,103 +1,110 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
actionmailer (3.
|
|
5
|
-
actionpack (= 3.
|
|
6
|
-
mail (~> 2.
|
|
7
|
-
actionpack (3.
|
|
8
|
-
activemodel (= 3.
|
|
9
|
-
activesupport (= 3.
|
|
4
|
+
actionmailer (3.2.8)
|
|
5
|
+
actionpack (= 3.2.8)
|
|
6
|
+
mail (~> 2.4.4)
|
|
7
|
+
actionpack (3.2.8)
|
|
8
|
+
activemodel (= 3.2.8)
|
|
9
|
+
activesupport (= 3.2.8)
|
|
10
10
|
builder (~> 3.0.0)
|
|
11
11
|
erubis (~> 2.7.0)
|
|
12
|
-
|
|
13
|
-
rack (~> 1.
|
|
14
|
-
rack-cache (~> 1.
|
|
15
|
-
rack-mount (~> 0.8.2)
|
|
12
|
+
journey (~> 1.0.4)
|
|
13
|
+
rack (~> 1.4.0)
|
|
14
|
+
rack-cache (~> 1.2)
|
|
16
15
|
rack-test (~> 0.6.1)
|
|
17
|
-
sprockets (~> 2.
|
|
18
|
-
activemodel (3.
|
|
19
|
-
activesupport (= 3.
|
|
16
|
+
sprockets (~> 2.1.3)
|
|
17
|
+
activemodel (3.2.8)
|
|
18
|
+
activesupport (= 3.2.8)
|
|
20
19
|
builder (~> 3.0.0)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
arel (~> 2.2.1)
|
|
20
|
+
activerecord (3.2.8)
|
|
21
|
+
activemodel (= 3.2.8)
|
|
22
|
+
activesupport (= 3.2.8)
|
|
23
|
+
arel (~> 3.0.2)
|
|
26
24
|
tzinfo (~> 0.3.29)
|
|
27
|
-
activeresource (3.
|
|
28
|
-
activemodel (= 3.
|
|
29
|
-
activesupport (= 3.
|
|
30
|
-
activesupport (3.
|
|
25
|
+
activeresource (3.2.8)
|
|
26
|
+
activemodel (= 3.2.8)
|
|
27
|
+
activesupport (= 3.2.8)
|
|
28
|
+
activesupport (3.2.8)
|
|
29
|
+
i18n (~> 0.6)
|
|
31
30
|
multi_json (~> 1.0)
|
|
32
|
-
arel (
|
|
33
|
-
builder (3.0.
|
|
31
|
+
arel (3.0.2)
|
|
32
|
+
builder (3.0.4)
|
|
34
33
|
erubis (2.7.0)
|
|
35
34
|
git (1.2.5)
|
|
36
35
|
hike (1.2.1)
|
|
37
|
-
i18n (0.6.
|
|
38
|
-
jeweler (1.
|
|
39
|
-
bundler (~> 1.0
|
|
36
|
+
i18n (0.6.1)
|
|
37
|
+
jeweler (1.8.4)
|
|
38
|
+
bundler (~> 1.0)
|
|
40
39
|
git (>= 1.2.5)
|
|
41
40
|
rake
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
rdoc
|
|
42
|
+
journey (1.0.4)
|
|
43
|
+
json (1.7.5)
|
|
44
|
+
mail (2.4.4)
|
|
44
45
|
i18n (>= 0.4.0)
|
|
45
46
|
mime-types (~> 1.16)
|
|
46
47
|
treetop (~> 1.4.8)
|
|
47
|
-
mime-types (1.
|
|
48
|
-
multi_json (1.
|
|
48
|
+
mime-types (1.19)
|
|
49
|
+
multi_json (1.3.6)
|
|
49
50
|
polyglot (0.3.3)
|
|
50
|
-
rack (1.
|
|
51
|
-
rack-cache (1.
|
|
51
|
+
rack (1.4.1)
|
|
52
|
+
rack-cache (1.2)
|
|
52
53
|
rack (>= 0.4)
|
|
53
|
-
rack-mount (0.8.3)
|
|
54
|
-
rack (>= 1.0.0)
|
|
55
54
|
rack-ssl (1.3.2)
|
|
56
55
|
rack
|
|
57
|
-
rack-test (0.6.
|
|
56
|
+
rack-test (0.6.2)
|
|
58
57
|
rack (>= 1.0)
|
|
59
|
-
rails (3.
|
|
60
|
-
actionmailer (= 3.
|
|
61
|
-
actionpack (= 3.
|
|
62
|
-
activerecord (= 3.
|
|
63
|
-
activeresource (= 3.
|
|
64
|
-
activesupport (= 3.
|
|
58
|
+
rails (3.2.8)
|
|
59
|
+
actionmailer (= 3.2.8)
|
|
60
|
+
actionpack (= 3.2.8)
|
|
61
|
+
activerecord (= 3.2.8)
|
|
62
|
+
activeresource (= 3.2.8)
|
|
63
|
+
activesupport (= 3.2.8)
|
|
65
64
|
bundler (~> 1.0)
|
|
66
|
-
railties (= 3.
|
|
67
|
-
railties (3.
|
|
68
|
-
actionpack (= 3.
|
|
69
|
-
activesupport (= 3.
|
|
65
|
+
railties (= 3.2.8)
|
|
66
|
+
railties (3.2.8)
|
|
67
|
+
actionpack (= 3.2.8)
|
|
68
|
+
activesupport (= 3.2.8)
|
|
70
69
|
rack-ssl (~> 1.3.2)
|
|
71
70
|
rake (>= 0.8.7)
|
|
72
71
|
rdoc (~> 3.4)
|
|
73
|
-
thor (
|
|
72
|
+
thor (>= 0.14.6, < 2.0)
|
|
74
73
|
rake (0.9.2.2)
|
|
75
|
-
|
|
76
|
-
rdoc (3.11)
|
|
74
|
+
rdoc (3.12)
|
|
77
75
|
json (~> 1.4)
|
|
78
|
-
shoulda (
|
|
79
|
-
|
|
76
|
+
shoulda (3.3.2)
|
|
77
|
+
shoulda-context (~> 1.0.1)
|
|
78
|
+
shoulda-matchers (~> 1.4.1)
|
|
79
|
+
shoulda-context (1.0.1)
|
|
80
|
+
shoulda-matchers (1.4.1)
|
|
81
|
+
activesupport (>= 3.0.0)
|
|
82
|
+
simplecov (0.7.1)
|
|
83
|
+
multi_json (~> 1.0)
|
|
84
|
+
simplecov-html (~> 0.7.1)
|
|
85
|
+
simplecov-html (0.7.1)
|
|
86
|
+
sprockets (2.1.3)
|
|
80
87
|
hike (~> 1.2)
|
|
81
88
|
rack (~> 1.0)
|
|
82
89
|
tilt (~> 1.1, != 1.3.0)
|
|
83
|
-
sqlite3 (1.3.
|
|
90
|
+
sqlite3 (1.3.6)
|
|
84
91
|
sqlite3-ruby (1.3.3)
|
|
85
92
|
sqlite3 (>= 1.3.3)
|
|
86
|
-
thor (0.
|
|
93
|
+
thor (0.16.0)
|
|
87
94
|
tilt (1.3.3)
|
|
88
|
-
treetop (1.4.
|
|
95
|
+
treetop (1.4.11)
|
|
89
96
|
polyglot
|
|
90
97
|
polyglot (>= 0.3.1)
|
|
91
|
-
tzinfo (0.3.
|
|
98
|
+
tzinfo (0.3.33)
|
|
92
99
|
|
|
93
100
|
PLATFORMS
|
|
94
101
|
ruby
|
|
95
102
|
|
|
96
103
|
DEPENDENCIES
|
|
97
104
|
activerecord (~> 3.0)
|
|
98
|
-
bundler (~> 1.
|
|
99
|
-
jeweler (~> 1.
|
|
105
|
+
bundler (~> 1.1)
|
|
106
|
+
jeweler (~> 1.8)
|
|
100
107
|
rails (~> 3.0)
|
|
101
|
-
rcov
|
|
102
108
|
shoulda
|
|
109
|
+
simplecov
|
|
103
110
|
sqlite3-ruby
|
data/README.rdoc
CHANGED
|
@@ -66,6 +66,18 @@ your model as if the defined attributes where present in the database.
|
|
|
66
66
|
In contradiction to acts_as_eav_model, has_eav will not allow for an all open
|
|
67
67
|
structure. You must define the attributes to be required.
|
|
68
68
|
|
|
69
|
+
=== STI
|
|
70
|
+
|
|
71
|
+
+has_eav+ works in an STI setting, and you can specify *more* attributes in the
|
|
72
|
+
inheriting class. Since the root class is responsible for the relationship to
|
|
73
|
+
the attributes class, you should not specify any options in the STI class
|
|
74
|
+
|
|
75
|
+
class PostponedPost < Post
|
|
76
|
+
has_eav do
|
|
77
|
+
eav_attribute :release_date
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
69
81
|
==== Instance eav_attributes
|
|
70
82
|
|
|
71
83
|
If you create a method +instance_eav_attributes+ in your model, has_eav will
|
data/Rakefile
CHANGED
|
@@ -33,13 +33,6 @@ Rake::TestTask.new(:test) do |test|
|
|
|
33
33
|
test.verbose = true
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
require 'rcov/rcovtask'
|
|
37
|
-
Rcov::RcovTask.new do |test|
|
|
38
|
-
test.libs << 'test'
|
|
39
|
-
test.pattern = 'test/**/test_*.rb'
|
|
40
|
-
test.verbose = true
|
|
41
|
-
end
|
|
42
|
-
|
|
43
36
|
task :default => :test
|
|
44
37
|
|
|
45
38
|
require 'rake/rdoctask'
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.2.0
|
data/has_eav.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "has_eav"
|
|
8
|
-
s.version = "1.
|
|
8
|
+
s.version = "1.2.0"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Hartog C. de Mik"]
|
|
12
|
-
s.date = "
|
|
12
|
+
s.date = "2012-10-24"
|
|
13
13
|
s.description = "Put EAV behaviour on your ActiveRecord models"
|
|
14
14
|
s.email = "hcdm@matchvertise.com"
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -53,7 +53,6 @@ Gem::Specification.new do |s|
|
|
|
53
53
|
"test/db/migrate/20101210102347_create_product_attributes.rb",
|
|
54
54
|
"test/db/migrate/20101210125857_add_type_to_post.rb",
|
|
55
55
|
"test/helper.rb",
|
|
56
|
-
"test/log/development.log",
|
|
57
56
|
"test/script/rails",
|
|
58
57
|
"test/test/fixtures/post_attributes.yml",
|
|
59
58
|
"test/test/fixtures/posts.yml",
|
|
@@ -68,38 +67,8 @@ Gem::Specification.new do |s|
|
|
|
68
67
|
s.homepage = "http://github.com/coffeeaddict/has_eav"
|
|
69
68
|
s.licenses = ["MIT"]
|
|
70
69
|
s.require_paths = ["lib"]
|
|
71
|
-
s.rubygems_version = "1.8.
|
|
70
|
+
s.rubygems_version = "1.8.11"
|
|
72
71
|
s.summary = "Put EAV behaviour on your ActiveRecord models"
|
|
73
|
-
s.test_files = [
|
|
74
|
-
"test/app/models/post.rb",
|
|
75
|
-
"test/app/models/post_attribute.rb",
|
|
76
|
-
"test/app/models/product.rb",
|
|
77
|
-
"test/app/models/product_attribute.rb",
|
|
78
|
-
"test/app/models/special_post.rb",
|
|
79
|
-
"test/config/application.rb",
|
|
80
|
-
"test/config/boot.rb",
|
|
81
|
-
"test/config/environment.rb",
|
|
82
|
-
"test/config/environments/development.rb",
|
|
83
|
-
"test/config/environments/production.rb",
|
|
84
|
-
"test/config/environments/test.rb",
|
|
85
|
-
"test/config/initializers/backtrace_silencers.rb",
|
|
86
|
-
"test/config/initializers/inflections.rb",
|
|
87
|
-
"test/config/initializers/mime_types.rb",
|
|
88
|
-
"test/config/initializers/secret_token.rb",
|
|
89
|
-
"test/config/initializers/session_store.rb",
|
|
90
|
-
"test/config/routes.rb",
|
|
91
|
-
"test/db/migrate/20101210093949_create_posts.rb",
|
|
92
|
-
"test/db/migrate/20101210100309_create_post_attributes.rb",
|
|
93
|
-
"test/db/migrate/20101210102322_create_products.rb",
|
|
94
|
-
"test/db/migrate/20101210102347_create_product_attributes.rb",
|
|
95
|
-
"test/db/migrate/20101210125857_add_type_to_post.rb",
|
|
96
|
-
"test/helper.rb",
|
|
97
|
-
"test/test/unit/post_attribute_test.rb",
|
|
98
|
-
"test/test/unit/post_test.rb",
|
|
99
|
-
"test/test/unit/product_attribute_test.rb",
|
|
100
|
-
"test/test/unit/product_test.rb",
|
|
101
|
-
"test/test_has_eav.rb"
|
|
102
|
-
]
|
|
103
72
|
|
|
104
73
|
if s.respond_to? :specification_version then
|
|
105
74
|
s.specification_version = 3
|
|
@@ -107,26 +76,26 @@ Gem::Specification.new do |s|
|
|
|
107
76
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
108
77
|
s.add_runtime_dependency(%q<activerecord>, ["~> 3.0"])
|
|
109
78
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
|
110
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.
|
|
111
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.
|
|
112
|
-
s.add_development_dependency(%q<
|
|
79
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.1"])
|
|
80
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8"])
|
|
81
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
113
82
|
s.add_development_dependency(%q<rails>, ["~> 3.0"])
|
|
114
83
|
s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
|
|
115
84
|
else
|
|
116
85
|
s.add_dependency(%q<activerecord>, ["~> 3.0"])
|
|
117
86
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
|
118
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
|
119
|
-
s.add_dependency(%q<jeweler>, ["~> 1.
|
|
120
|
-
s.add_dependency(%q<
|
|
87
|
+
s.add_dependency(%q<bundler>, ["~> 1.1"])
|
|
88
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8"])
|
|
89
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
121
90
|
s.add_dependency(%q<rails>, ["~> 3.0"])
|
|
122
91
|
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
|
123
92
|
end
|
|
124
93
|
else
|
|
125
94
|
s.add_dependency(%q<activerecord>, ["~> 3.0"])
|
|
126
95
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
|
127
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
|
128
|
-
s.add_dependency(%q<jeweler>, ["~> 1.
|
|
129
|
-
s.add_dependency(%q<
|
|
96
|
+
s.add_dependency(%q<bundler>, ["~> 1.1"])
|
|
97
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8"])
|
|
98
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
130
99
|
s.add_dependency(%q<rails>, ["~> 3.0"])
|
|
131
100
|
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
|
132
101
|
end
|
data/lib/has_eav.rb
CHANGED
|
@@ -9,28 +9,41 @@ module ActiveRecord
|
|
|
9
9
|
# Specify that the ActiveModel is an EAV model
|
|
10
10
|
#
|
|
11
11
|
# == Usage
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
12
|
+
# # specifiy eav_attributes at instance level
|
|
13
|
+
# has_eav :through => :some_class_with_name_and_value_attributes
|
|
14
|
+
# def available_eav_attributes
|
|
15
|
+
# case self.origin
|
|
16
|
+
# when "remote"
|
|
17
|
+
# %(remote_ip user_agent)
|
|
18
|
+
# when "local"
|
|
19
|
+
# %(user)
|
|
20
|
+
# end + [ :uniq_id ]
|
|
21
|
+
# end
|
|
22
22
|
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
23
|
+
# # specify some eav_attributes at class level
|
|
24
|
+
# has_eav :through => "BoundAttribute" do
|
|
25
|
+
# eav_attribute :remote_ip
|
|
26
|
+
# eav_attribute :uniq_id
|
|
27
|
+
# end
|
|
28
|
+
#
|
|
29
|
+
# # specify more attributes in an STI class
|
|
30
|
+
# class ItalianJob < Job
|
|
31
|
+
# has_eav do
|
|
32
|
+
# eav_attribute :mini_driver
|
|
33
|
+
# end
|
|
34
|
+
# end
|
|
28
35
|
#
|
|
29
36
|
# == Mixing class and instance defined EAV attributes
|
|
30
37
|
# You can define EAV attributes both in class and instance context and
|
|
31
38
|
# they will be both adhered
|
|
32
39
|
#
|
|
33
40
|
def has_eav opts={}, &block
|
|
41
|
+
if self.superclass != ActiveRecord::Base && (opts.nil? || opts.empty?)
|
|
42
|
+
@eav_attributes = {}
|
|
43
|
+
yield
|
|
44
|
+
return
|
|
45
|
+
end
|
|
46
|
+
|
|
34
47
|
klass = opts.delete :through
|
|
35
48
|
klass = klass.to_s if klass.is_a? Symbol
|
|
36
49
|
klass = klass.camelize
|
|
@@ -40,8 +53,10 @@ module ActiveRecord
|
|
|
40
53
|
"has_eav :through => :class"
|
|
41
54
|
) if klass.blank?
|
|
42
55
|
|
|
56
|
+
opts[:class_name] = klass
|
|
57
|
+
|
|
43
58
|
class_eval do
|
|
44
|
-
has_many :eav_attributes,
|
|
59
|
+
has_many :eav_attributes, opts
|
|
45
60
|
after_save :save_eav_attributes
|
|
46
61
|
end
|
|
47
62
|
|
|
@@ -57,14 +72,14 @@ module ActiveRecord
|
|
|
57
72
|
def eav_attribute name, type = String
|
|
58
73
|
name = name.to_s if !name.is_a? String
|
|
59
74
|
|
|
60
|
-
|
|
75
|
+
@eav_attributes[name] = type
|
|
61
76
|
end
|
|
62
77
|
|
|
63
78
|
# class accessor - when the superclass != AR::Base asume we are in STI
|
|
64
79
|
# mode
|
|
65
80
|
def class_eav_attributes # :nodoc:
|
|
66
81
|
superclass != ActiveRecord::Base ?
|
|
67
|
-
superclass.class_eav_attributes :
|
|
82
|
+
superclass.class_eav_attributes.merge(@eav_attributes || {}) :
|
|
68
83
|
@eav_attributes
|
|
69
84
|
end
|
|
70
85
|
|
|
@@ -214,17 +229,16 @@ module ActiveRecord
|
|
|
214
229
|
return value unless attributes.keys.include?(attribute)
|
|
215
230
|
return value if attributes[attribute] == String # no need for casting
|
|
216
231
|
|
|
217
|
-
|
|
218
232
|
begin
|
|
219
233
|
# for core types [eg: Integer '12']
|
|
220
234
|
eval("#{attributes[attribute]} '#{value}'")
|
|
221
235
|
|
|
222
236
|
rescue
|
|
223
237
|
begin
|
|
224
|
-
attributes[attribute].
|
|
238
|
+
attributes[attribute].parse(value)
|
|
225
239
|
rescue
|
|
226
240
|
begin
|
|
227
|
-
attributes[attribute].
|
|
241
|
+
attributes[attribute].new(value)
|
|
228
242
|
rescue
|
|
229
243
|
value
|
|
230
244
|
end
|
metadata
CHANGED
|
@@ -1,136 +1,101 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: has_eav
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 1
|
|
8
|
-
- 1
|
|
9
|
-
- 5
|
|
10
|
-
version: 1.1.5
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Hartog C. de Mik
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
date: 2012-10-24 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: activerecord
|
|
16
|
+
requirement: &18194920 !ruby/object:Gem::Requirement
|
|
22
17
|
none: false
|
|
23
|
-
requirements:
|
|
18
|
+
requirements:
|
|
24
19
|
- - ~>
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
|
|
27
|
-
segments:
|
|
28
|
-
- 3
|
|
29
|
-
- 0
|
|
30
|
-
version: "3.0"
|
|
31
|
-
name: activerecord
|
|
32
|
-
prerelease: false
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '3.0'
|
|
33
22
|
type: :runtime
|
|
34
|
-
requirement: *id001
|
|
35
|
-
- !ruby/object:Gem::Dependency
|
|
36
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
|
37
|
-
none: false
|
|
38
|
-
requirements:
|
|
39
|
-
- - ">="
|
|
40
|
-
- !ruby/object:Gem::Version
|
|
41
|
-
hash: 3
|
|
42
|
-
segments:
|
|
43
|
-
- 0
|
|
44
|
-
version: "0"
|
|
45
|
-
name: shoulda
|
|
46
23
|
prerelease: false
|
|
24
|
+
version_requirements: *18194920
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: shoulda
|
|
27
|
+
requirement: &18205040 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
47
33
|
type: :development
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: *18205040
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: bundler
|
|
38
|
+
requirement: &18209880 !ruby/object:Gem::Requirement
|
|
51
39
|
none: false
|
|
52
|
-
requirements:
|
|
40
|
+
requirements:
|
|
53
41
|
- - ~>
|
|
54
|
-
- !ruby/object:Gem::Version
|
|
55
|
-
|
|
56
|
-
segments:
|
|
57
|
-
- 1
|
|
58
|
-
- 0
|
|
59
|
-
- 0
|
|
60
|
-
version: 1.0.0
|
|
61
|
-
name: bundler
|
|
62
|
-
prerelease: false
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '1.1'
|
|
63
44
|
type: :development
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
45
|
+
prerelease: false
|
|
46
|
+
version_requirements: *18209880
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: jeweler
|
|
49
|
+
requirement: &18206560 !ruby/object:Gem::Requirement
|
|
67
50
|
none: false
|
|
68
|
-
requirements:
|
|
51
|
+
requirements:
|
|
69
52
|
- - ~>
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
|
|
72
|
-
segments:
|
|
73
|
-
- 1
|
|
74
|
-
- 5
|
|
75
|
-
- 1
|
|
76
|
-
version: 1.5.1
|
|
77
|
-
name: jeweler
|
|
78
|
-
prerelease: false
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.8'
|
|
79
55
|
type: :development
|
|
80
|
-
requirement: *id004
|
|
81
|
-
- !ruby/object:Gem::Dependency
|
|
82
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
|
83
|
-
none: false
|
|
84
|
-
requirements:
|
|
85
|
-
- - ">="
|
|
86
|
-
- !ruby/object:Gem::Version
|
|
87
|
-
hash: 3
|
|
88
|
-
segments:
|
|
89
|
-
- 0
|
|
90
|
-
version: "0"
|
|
91
|
-
name: rcov
|
|
92
56
|
prerelease: false
|
|
57
|
+
version_requirements: *18206560
|
|
58
|
+
- !ruby/object:Gem::Dependency
|
|
59
|
+
name: simplecov
|
|
60
|
+
requirement: &18216900 !ruby/object:Gem::Requirement
|
|
61
|
+
none: false
|
|
62
|
+
requirements:
|
|
63
|
+
- - ! '>='
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: '0'
|
|
93
66
|
type: :development
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
67
|
+
prerelease: false
|
|
68
|
+
version_requirements: *18216900
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rails
|
|
71
|
+
requirement: &18225920 !ruby/object:Gem::Requirement
|
|
97
72
|
none: false
|
|
98
|
-
requirements:
|
|
73
|
+
requirements:
|
|
99
74
|
- - ~>
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
|
|
102
|
-
segments:
|
|
103
|
-
- 3
|
|
104
|
-
- 0
|
|
105
|
-
version: "3.0"
|
|
106
|
-
name: rails
|
|
107
|
-
prerelease: false
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '3.0'
|
|
108
77
|
type: :development
|
|
109
|
-
requirement: *id006
|
|
110
|
-
- !ruby/object:Gem::Dependency
|
|
111
|
-
version_requirements: &id007 !ruby/object:Gem::Requirement
|
|
112
|
-
none: false
|
|
113
|
-
requirements:
|
|
114
|
-
- - ">="
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
hash: 3
|
|
117
|
-
segments:
|
|
118
|
-
- 0
|
|
119
|
-
version: "0"
|
|
120
|
-
name: sqlite3-ruby
|
|
121
78
|
prerelease: false
|
|
79
|
+
version_requirements: *18225920
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: sqlite3-ruby
|
|
82
|
+
requirement: &18222840 !ruby/object:Gem::Requirement
|
|
83
|
+
none: false
|
|
84
|
+
requirements:
|
|
85
|
+
- - ! '>='
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '0'
|
|
122
88
|
type: :development
|
|
123
|
-
|
|
89
|
+
prerelease: false
|
|
90
|
+
version_requirements: *18222840
|
|
124
91
|
description: Put EAV behaviour on your ActiveRecord models
|
|
125
92
|
email: hcdm@matchvertise.com
|
|
126
93
|
executables: []
|
|
127
|
-
|
|
128
94
|
extensions: []
|
|
129
|
-
|
|
130
|
-
extra_rdoc_files:
|
|
95
|
+
extra_rdoc_files:
|
|
131
96
|
- LICENSE.txt
|
|
132
97
|
- README.rdoc
|
|
133
|
-
files:
|
|
98
|
+
files:
|
|
134
99
|
- .document
|
|
135
100
|
- Gemfile
|
|
136
101
|
- Gemfile.lock
|
|
@@ -167,7 +132,6 @@ files:
|
|
|
167
132
|
- test/db/migrate/20101210102347_create_product_attributes.rb
|
|
168
133
|
- test/db/migrate/20101210125857_add_type_to_post.rb
|
|
169
134
|
- test/helper.rb
|
|
170
|
-
- test/log/development.log
|
|
171
135
|
- test/script/rails
|
|
172
136
|
- test/test/fixtures/post_attributes.yml
|
|
173
137
|
- test/test/fixtures/posts.yml
|
|
@@ -179,64 +143,31 @@ files:
|
|
|
179
143
|
- test/test/unit/product_test.rb
|
|
180
144
|
- test/test_has_eav.rb
|
|
181
145
|
homepage: http://github.com/coffeeaddict/has_eav
|
|
182
|
-
licenses:
|
|
146
|
+
licenses:
|
|
183
147
|
- MIT
|
|
184
148
|
post_install_message:
|
|
185
149
|
rdoc_options: []
|
|
186
|
-
|
|
187
|
-
require_paths:
|
|
150
|
+
require_paths:
|
|
188
151
|
- lib
|
|
189
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
190
153
|
none: false
|
|
191
|
-
requirements:
|
|
192
|
-
- -
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
|
|
195
|
-
segments:
|
|
154
|
+
requirements:
|
|
155
|
+
- - ! '>='
|
|
156
|
+
- !ruby/object:Gem::Version
|
|
157
|
+
version: '0'
|
|
158
|
+
segments:
|
|
196
159
|
- 0
|
|
197
|
-
|
|
198
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
|
+
hash: -2214727751547464973
|
|
161
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
162
|
none: false
|
|
200
|
-
requirements:
|
|
201
|
-
- -
|
|
202
|
-
- !ruby/object:Gem::Version
|
|
203
|
-
|
|
204
|
-
segments:
|
|
205
|
-
- 0
|
|
206
|
-
version: "0"
|
|
163
|
+
requirements:
|
|
164
|
+
- - ! '>='
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '0'
|
|
207
167
|
requirements: []
|
|
208
|
-
|
|
209
168
|
rubyforge_project:
|
|
210
|
-
rubygems_version: 1.8.
|
|
169
|
+
rubygems_version: 1.8.11
|
|
211
170
|
signing_key:
|
|
212
171
|
specification_version: 3
|
|
213
172
|
summary: Put EAV behaviour on your ActiveRecord models
|
|
214
|
-
test_files:
|
|
215
|
-
- test/app/models/post.rb
|
|
216
|
-
- test/app/models/post_attribute.rb
|
|
217
|
-
- test/app/models/product.rb
|
|
218
|
-
- test/app/models/product_attribute.rb
|
|
219
|
-
- test/app/models/special_post.rb
|
|
220
|
-
- test/config/application.rb
|
|
221
|
-
- test/config/boot.rb
|
|
222
|
-
- test/config/environment.rb
|
|
223
|
-
- test/config/environments/development.rb
|
|
224
|
-
- test/config/environments/production.rb
|
|
225
|
-
- test/config/environments/test.rb
|
|
226
|
-
- test/config/initializers/backtrace_silencers.rb
|
|
227
|
-
- test/config/initializers/inflections.rb
|
|
228
|
-
- test/config/initializers/mime_types.rb
|
|
229
|
-
- test/config/initializers/secret_token.rb
|
|
230
|
-
- test/config/initializers/session_store.rb
|
|
231
|
-
- test/config/routes.rb
|
|
232
|
-
- test/db/migrate/20101210093949_create_posts.rb
|
|
233
|
-
- test/db/migrate/20101210100309_create_post_attributes.rb
|
|
234
|
-
- test/db/migrate/20101210102322_create_products.rb
|
|
235
|
-
- test/db/migrate/20101210102347_create_product_attributes.rb
|
|
236
|
-
- test/db/migrate/20101210125857_add_type_to_post.rb
|
|
237
|
-
- test/helper.rb
|
|
238
|
-
- test/test/unit/post_attribute_test.rb
|
|
239
|
-
- test/test/unit/post_test.rb
|
|
240
|
-
- test/test/unit/product_attribute_test.rb
|
|
241
|
-
- test/test/unit/product_test.rb
|
|
242
|
-
- test/test_has_eav.rb
|
|
173
|
+
test_files: []
|
data/test/log/development.log
DELETED