eav_hashes 1.0.1 → 1.0.2

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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -20
  3. data/README.md +147 -147
  4. data/Rakefile +30 -30
  5. data/lib/eav_hashes/activerecord_extension.rb +37 -37
  6. data/lib/eav_hashes/eav_entry.rb +128 -128
  7. data/lib/eav_hashes/eav_hash.rb +167 -167
  8. data/lib/eav_hashes/util.rb +122 -122
  9. data/lib/eav_hashes/version.rb +5 -5
  10. data/lib/eav_hashes.rb +8 -8
  11. data/lib/generators/eav_migration/USAGE +26 -26
  12. data/lib/generators/eav_migration/eav_migration.rb +35 -35
  13. data/lib/generators/eav_migration/templates/eav_migration.erb +15 -15
  14. data/spec/dummy/README.rdoc +261 -261
  15. data/spec/dummy/Rakefile +7 -7
  16. data/spec/dummy/app/assets/javascripts/application.js +15 -15
  17. data/spec/dummy/app/assets/stylesheets/application.css +13 -13
  18. data/spec/dummy/app/controllers/application_controller.rb +3 -3
  19. data/spec/dummy/app/helpers/application_helper.rb +2 -2
  20. data/spec/dummy/app/models/custom_test_object.rb +6 -6
  21. data/spec/dummy/app/models/product.rb +3 -4
  22. data/spec/dummy/app/views/layouts/application.html.erb +14 -14
  23. data/spec/dummy/config/application.rb +62 -68
  24. data/spec/dummy/config/boot.rb +9 -9
  25. data/spec/dummy/config/database.yml +25 -25
  26. data/spec/dummy/config/environment.rb +5 -5
  27. data/spec/dummy/config/environments/development.rb +34 -37
  28. data/spec/dummy/config/environments/production.rb +70 -67
  29. data/spec/dummy/config/environments/test.rb +34 -37
  30. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -7
  31. data/spec/dummy/config/initializers/inflections.rb +15 -15
  32. data/spec/dummy/config/initializers/mime_types.rb +5 -5
  33. data/spec/dummy/config/initializers/secret_token.rb +7 -7
  34. data/spec/dummy/config/initializers/session_store.rb +8 -8
  35. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -14
  36. data/spec/dummy/config/locales/en.yml +5 -5
  37. data/spec/dummy/config/routes.rb +58 -58
  38. data/spec/dummy/config.ru +4 -4
  39. data/spec/dummy/db/migrate/20121206133059_create_products.rb +9 -9
  40. data/spec/dummy/db/migrate/20121210055854_create_product_tech_specs.rb +15 -15
  41. data/spec/dummy/db/seeds.rb +30 -30
  42. data/spec/dummy/public/404.html +26 -26
  43. data/spec/dummy/public/422.html +26 -26
  44. data/spec/dummy/public/500.html +25 -25
  45. data/spec/dummy/script/rails +6 -6
  46. data/spec/lib/eav_hashes/eav_hash_spec.rb +147 -137
  47. data/spec/lib/generators/eav_migration_spec.rb +60 -60
  48. data/spec/spec_helper.rb +24 -24
  49. metadata +25 -44
  50. data/spec/dummy/db/development.sqlite3 +0 -0
  51. data/spec/dummy/db/schema.rb +0 -35
  52. data/spec/dummy/db/test.sqlite3 +0 -0
  53. data/spec/dummy/log/ENV=test.log +0 -1
  54. data/spec/dummy/log/development.log +0 -46
  55. data/spec/dummy/log/test.log +0 -4623
@@ -1,138 +1,148 @@
1
- require 'spec_helper'
2
-
3
- describe "EavHash/EavEntry" do
4
- # p[1-3] are defined in spec/dummy/db/seeds.rb and are used as fixtures
5
- let (:p1) { Product.find_by_name("Product 1") }
6
- let (:p2) { Product.find_by_name("Product 2") }
7
- let (:p3) { Product.find_by_name("Product 3") }
8
-
9
- it "deletes an EAV row when its value is set to nil" do
10
- p3_id = p3.id
11
- p3.tech_specs[:delete_me] = nil
12
- p3.save!
13
-
14
- p3_pulled = Product.find_by_id(p3_id)
15
- p3_pulled.tech_specs.keys.length.should == 0
16
- end
17
-
18
- it "is able to search for all models whose hashes contain a specified key" do
19
- Product.find_by_tech_specs("A String").length.should be == 2
20
- Product.find_by_tech_specs(:only_in_product_2).length.should be == 1
21
- end
22
-
23
- describe "distinguishes between string and symbol keys" do
24
- it "finds a value for symbol key \":symbolic_key\" in Product 1" do
25
- p1.tech_specs[:symbolic_key].should_not be_nil
26
- end
27
-
28
- it "does not find a value for non-symbol key \"symbolic_key\" in Product 1" do
29
- p1.tech_specs["symbolic_key"].should be_nil
30
- end
31
- end
32
-
33
- describe "preserves types between serialization and deserialization" do
34
- it "preserves String value types" do
35
- p1.tech_specs["A String"].should be_a_kind_of String
36
- end
37
-
38
- it "preserves Symbol value types" do
39
- p1.tech_specs["A Symbol"].should be_a_kind_of Symbol
40
- end
41
-
42
- it "preserves Integer/Bignum/Fixnum value types" do
43
- p1.tech_specs["A Number"].should be_a_kind_of Integer
44
- end
45
-
46
- it "preserves Symbol value types" do
47
- p1.tech_specs["A Float"].should be_a_kind_of Float
48
- end
49
-
50
- it "preserves Complex value types" do
51
- p1.tech_specs["A Complex"].should be_a_kind_of Complex
52
- end
53
-
54
- it "preserves Rational value types" do
55
- p1.tech_specs["A Rational"].should be_a_kind_of Rational
56
- end
57
-
58
- it "preserves Boolean(true) value types" do
59
- p1.tech_specs["True"].should be_a_kind_of TrueClass
60
- end
61
-
62
- it "preserves Boolean(false) value types" do
63
- p1.tech_specs["False"].should be_a_kind_of FalseClass
64
- end
65
-
66
- it "preserves Array value types" do
67
- p1.tech_specs["An Array"].should be_a_kind_of Array
68
- end
69
-
70
- it "preserves Hash value types" do
71
- p1.tech_specs["A Hash"].should be_a_kind_of Hash
72
- end
73
-
74
- it "preserves user-defined value types" do
75
- p1.tech_specs["An Object"].should be_a_kind_of CustomTestObject
76
- end
77
- end
78
-
79
- describe "preserves values between serialization and deserialization" do
80
- it "preserves String values" do
81
- p1.tech_specs["A String"].should be == "Strings are for cats!"
82
- end
83
-
84
- it "preserves Symbols" do
85
- p1.tech_specs["A Symbol"].should be == :symbol
86
- end
87
-
88
- it "preserves Integer/Bignum/Fixnum value types" do
89
- p1.tech_specs["A Number"].should be == 42
90
- end
91
-
92
- it "preserves Symbol values" do
93
- p1.tech_specs["A Float"].should be == 3.141592653589793
94
- end
95
-
96
- it "preserves Complex values" do
97
- p1.tech_specs["A Complex"].should be == Complex("3.141592653589793+42i")
98
- end
99
-
100
- it "preserves Rational values" do
101
- p1.tech_specs["A Rational"].should be == Rational(Math::PI)
102
- end
103
-
104
- it "preserves Boolean(true) values" do
105
- p1.tech_specs["True"].should be == true
106
- end
107
-
108
- it "preserves Boolean(false) values" do
109
- p1.tech_specs["False"].should be == false
110
- end
111
-
112
- it "preserves Array values" do
113
- p1.tech_specs["An Array"].should be == ["blue", 42, :flux_capacitor]
114
- end
115
-
116
- it "preserves Hash values" do
117
- p1.tech_specs["A Hash"].should be == {:foo => :bar}
118
- end
119
-
120
- it "preserves user-defined values" do
121
- p1.tech_specs["An Object"].test_value.should be == 42
122
- end
123
- end
124
-
125
- describe "cannot search by arrays, hashes, and objects" do
126
- it "raises an error when searched by an object" do
127
- lambda { Product.find_by_tech_specs("An Object", CustomTestObject.new(42)) }.should raise_error()
128
- end
129
-
130
- it "raises an error when searched by a hash" do
131
- lambda { Product.find_by_tech_specs("A Hash", {:foo => :bar}) }.should raise_error()
132
- end
133
-
134
- it "raises an error when searched by an array" do
135
- lambda { Product.find_by_tech_specs("An Array", ["blue", 42, :flux_capacitor]) }.should raise_error()
136
- end
137
- end
1
+ require 'spec_helper'
2
+
3
+ describe "EavHash/EavEntry" do
4
+ # p[1-3] are defined in spec/dummy/db/seeds.rb and are used as fixtures
5
+ let (:p1) { Product.find_by_name("Product 1") }
6
+ let (:p2) { Product.find_by_name("Product 2") }
7
+ let (:p3) { Product.find_by_name("Product 3") }
8
+
9
+ it "deletes an EAV row when its value is set to nil" do
10
+ p3_id = p3.id
11
+ p3.tech_specs[:delete_me] = nil
12
+ p3.save!
13
+
14
+ p3_pulled = Product.find_by_id(p3_id)
15
+ # p3_pulled.tech_specs.keys.length.should == 0
16
+ expect(p3_pulled.tech_specs.keys.length).to eq(0)
17
+
18
+ end
19
+
20
+ it "is able to search for all models whose hashes contain a specified key" do
21
+ # Product.find_by_tech_specs("A String").length.should be == 2
22
+ expect(Product.find_by_tech_specs("A String").length).to eq(2)
23
+
24
+ # Product.find_by_tech_specs(:only_in_product_2).length.should be == 1
25
+ expect(Product.find_by_tech_specs(:only_in_product_2).length).to eq(1)
26
+ end
27
+
28
+ describe "distinguishes between string and symbol keys" do
29
+ it "finds a value for symbol key \":symbolic_key\" in Product 1" do
30
+ # p1.tech_specs[:symbolic_key].should_not be_nil
31
+ expect(p1.tech_specs[:symbolic_key]).not_to be_nil
32
+ end
33
+
34
+ it "does not find a value for non-symbol key \"symbolic_key\" in Product 1" do
35
+ # p1.tech_specs["symbolic_key"].should be_nil
36
+ expect(p1.tech_specs["symbolic_key"]).to be_nil
37
+ end
38
+ end
39
+
40
+ describe "preserves types between serialization and deserialization" do
41
+ it "preserves String value types" do
42
+ # p1.tech_specs["A String"].should be_a_kind_of String
43
+ expect(p1.tech_specs["A String"]).to be_a_kind_of String
44
+ end
45
+
46
+ it "preserves Symbol value types" do
47
+ # p1.tech_specs["A Symbol"].should be_a_kind_of Symbol
48
+ expect(p1.tech_specs["A Symbol"]).to be_a_kind_of Symbol
49
+ end
50
+
51
+ it "preserves Integer/Bignum/Fixnum value types" do
52
+ # p1.tech_specs["A Number"].should be_a_kind_of Integer
53
+ expect(p1.tech_specs["A Number"]).to be_a_kind_of Integer
54
+ end
55
+
56
+ it "preserves Symbol value types" do
57
+ expect(p1.tech_specs["A Float"]).to be_a_kind_of Float
58
+ end
59
+
60
+ it "preserves Complex value types" do
61
+ expect(p1.tech_specs["A Complex"]).to be_a_kind_of Complex
62
+ end
63
+
64
+ it "preserves Rational value types" do
65
+ expect(p1.tech_specs["A Rational"]).to be_a_kind_of Rational
66
+ end
67
+
68
+ it "preserves Boolean(true) value types" do
69
+ expect(p1.tech_specs["True"]).to be_a_kind_of TrueClass
70
+ end
71
+
72
+ it "preserves Boolean(false) value types" do
73
+ expect(p1.tech_specs["False"]).to be_a_kind_of FalseClass
74
+ end
75
+
76
+ it "preserves Array value types" do
77
+ expect(p1.tech_specs["An Array"]).to be_a_kind_of Array
78
+ end
79
+
80
+ it "preserves Hash value types" do
81
+ expect(p1.tech_specs["A Hash"]).to be_a_kind_of Hash
82
+ end
83
+
84
+ it "preserves user-defined value types" do
85
+ expect(p1.tech_specs["An Object"]).to be_a_kind_of CustomTestObject
86
+ end
87
+ end
88
+
89
+ describe "preserves values between serialization and deserialization" do
90
+ it "preserves String values" do
91
+ expect(p1.tech_specs["A String"]).to eq("Strings are for cats!")
92
+ end
93
+
94
+ it "preserves Symbols" do
95
+ expect(p1.tech_specs["A Symbol"]).to eq(:symbol)
96
+ end
97
+
98
+ it "preserves Integer/Bignum/Fixnum value types" do
99
+ expect(p1.tech_specs["A Number"]).to eq(42)
100
+ end
101
+
102
+ it "preserves Symbol values" do
103
+ expect(p1.tech_specs["A Float"]).to eq(3.141592653589793)
104
+ end
105
+
106
+ it "preserves Complex values" do
107
+ expect(p1.tech_specs["A Complex"]).to eq(Complex("3.141592653589793+42i"))
108
+ end
109
+
110
+ it "preserves Rational values" do
111
+ expect(p1.tech_specs["A Rational"]).to eq(Rational(Math::PI))
112
+ end
113
+
114
+ it "preserves Boolean(true) values" do
115
+ expect(p1.tech_specs["True"]).to eq(true)
116
+ end
117
+
118
+ it "preserves Boolean(false) values" do
119
+ expect(p1.tech_specs["False"]).to eq(false)
120
+ end
121
+
122
+ it "preserves Array values" do
123
+ expect(p1.tech_specs["An Array"]).to eq(["blue", 42, :flux_capacitor])
124
+ end
125
+
126
+ it "preserves Hash values" do
127
+ expect(p1.tech_specs["A Hash"]).to eq({:foo => :bar})
128
+ end
129
+
130
+ it "preserves user-defined values" do
131
+ expect(p1.tech_specs["An Object"].test_value).to eq(42)
132
+ end
133
+ end
134
+
135
+ describe "cannot search by arrays, hashes, and objects" do
136
+ it "raises an error when searched by an object" do
137
+ expect(lambda { Product.find_by_tech_specs("An Object", CustomTestObject.new(42)) }).to raise_error()
138
+ end
139
+
140
+ it "raises an error when searched by a hash" do
141
+ expect(lambda { Product.find_by_tech_specs("A Hash", {:foo => :bar}) }).to raise_error()
142
+ end
143
+
144
+ it "raises an error when searched by an array" do
145
+ expect(lambda { Product.find_by_tech_specs("An Array", ["blue", 42, :flux_capacitor]) }).to raise_error()
146
+ end
147
+ end
138
148
  end
@@ -1,61 +1,61 @@
1
- require 'spec_helper'
2
-
3
- describe EavMigrationGenerator do
4
- let(:top_level_model_generator) { EavMigrationGenerator.new(['TestModel', 'test_hash']) }
5
- let(:one_module_generator) { EavMigrationGenerator.new(['Foo::TestModel', 'test_hash']) }
6
- let(:multi_module_generator) { EavMigrationGenerator.new(['Foo::Bar::TestModel', 'test_hash']) }
7
-
8
- describe "#model_association_name" do
9
- context "when the model is at the top level" do
10
- it "should underscore the model name" do
11
- top_level_model_generator.model_association_name.should == "test_model"
12
- end
13
- end
14
-
15
- context "when the model is namespaced by one module" do
16
- it "should underscore the model name, replacing the slash with an underscore" do
17
- one_module_generator.model_association_name.should == "foo_test_model"
18
- end
19
- end
20
-
21
- context "when the model is namespaced by multiple modules" do
22
- it "should underscore the model name, replacing the slashes with underscores" do
23
- multi_module_generator.model_association_name.should == "foo_bar_test_model"
24
- end
25
- end
26
- end
27
-
28
- describe "#table_name" do
29
- context "when the model is at the top level" do
30
- it "should underscore the model name and append the hash name" do
31
- top_level_model_generator.table_name.should == "test_model_test_hash"
32
- end
33
- end
34
-
35
- context "when the model is namespaced by one module" do
36
- it "should underscore the model name, replacing the slash with an underscore, and append the hash name" do
37
- one_module_generator.table_name.should == "foo_test_model_test_hash"
38
- end
39
- end
40
-
41
- context "when the model is namespaced by multiple modules" do
42
- it "should underscore the model name, replacing the slashes with underscores, and append the hash name" do
43
- multi_module_generator.table_name.should == "foo_bar_test_model_test_hash"
44
- end
45
- end
46
- end
47
-
48
- describe "#migration_file_name" do
49
- context "when the model is at the top level" do
50
- it "should return create_ followed by the table name" do
51
- top_level_model_generator.migration_file_name.should == "create_test_model_test_hash"
52
- end
53
- end
54
-
55
- context "when the model is namespaced by one or more modules" do
56
- it "should return create_ followed by the table name, with module names included" do
57
- multi_module_generator.migration_file_name.should == "create_foo_bar_test_model_test_hash"
58
- end
59
- end
60
- end
1
+ require 'spec_helper'
2
+
3
+ describe EavMigrationGenerator do
4
+ let(:top_level_model_generator) { EavMigrationGenerator.new(['TestModel', 'test_hash']) }
5
+ let(:one_module_generator) { EavMigrationGenerator.new(['Foo::TestModel', 'test_hash']) }
6
+ let(:multi_module_generator) { EavMigrationGenerator.new(['Foo::Bar::TestModel', 'test_hash']) }
7
+
8
+ describe "#model_association_name" do
9
+ context "when the model is at the top level" do
10
+ it "should underscore the model name" do
11
+ expect(top_level_model_generator.model_association_name).to eq ("test_model")
12
+ end
13
+ end
14
+
15
+ context "when the model is namespaced by one module" do
16
+ it "should underscore the model name, replacing the slash with an underscore" do
17
+ expect(one_module_generator.model_association_name).to eq ("foo_test_model")
18
+ end
19
+ end
20
+
21
+ context "when the model is namespaced by multiple modules" do
22
+ it "should underscore the model name, replacing the slashes with underscores" do
23
+ expect(multi_module_generator.model_association_name).to eq ("foo_bar_test_model")
24
+ end
25
+ end
26
+ end
27
+
28
+ describe "#table_name" do
29
+ context "when the model is at the top level" do
30
+ it "should underscore the model name and append the hash name" do
31
+ expect(top_level_model_generator.table_name).to eq ("test_model_test_hash")
32
+ end
33
+ end
34
+
35
+ context "when the model is namespaced by one module" do
36
+ it "should underscore the model name, replacing the slash with an underscore, and append the hash name" do
37
+ expect(one_module_generator.table_name).to eq ("foo_test_model_test_hash")
38
+ end
39
+ end
40
+
41
+ context "when the model is namespaced by multiple modules" do
42
+ it "should underscore the model name, replacing the slashes with underscores, and append the hash name" do
43
+ expect(multi_module_generator.table_name).to eq ("foo_bar_test_model_test_hash")
44
+ end
45
+ end
46
+ end
47
+
48
+ describe "#migration_file_name" do
49
+ context "when the model is at the top level" do
50
+ it "should return create_ followed by the table name" do
51
+ expect(top_level_model_generator.migration_file_name).to eq ("create_test_model_test_hash")
52
+ end
53
+ end
54
+
55
+ context "when the model is namespaced by one or more modules" do
56
+ it "should return create_ followed by the table name, with module names included" do
57
+ expect(multi_module_generator.migration_file_name).to eq ("create_foo_bar_test_model_test_hash")
58
+ end
59
+ end
60
+ end
61
61
  end
data/spec/spec_helper.rb CHANGED
@@ -1,25 +1,25 @@
1
- # destroy our test DB before rails gets to open it
2
- begin
3
- File.delete File.expand_path("../dummy/db/test.sqlite3", __FILE__)
4
- rescue
5
- puts "Unable to delete test.sqlite3!\nDon't worry if this is the first time running specs."
6
- end
7
-
8
- ENV["RAILS_ENV"] = "test"
9
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
10
-
11
- require 'rspec/rails'
12
-
13
- Rails.backtrace_cleaner.remove_silencers!
14
-
15
- # get some migrations up in here
16
- ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
17
- require File.expand_path("../dummy/db/seeds.rb", __FILE__)
18
-
19
- RSpec.configure do |config|
20
- require 'rspec/expectations'
21
-
22
- #config.formatter = :documentation
23
- config.use_transactional_fixtures = true
24
- config.include RSpec::Matchers
1
+ # destroy our test DB before rails gets to open it
2
+ begin
3
+ File.delete File.expand_path("../dummy/db/test.sqlite3", __FILE__)
4
+ rescue
5
+ puts "Unable to delete test.sqlite3!\nDon't worry if this is the first time running specs."
6
+ end
7
+
8
+ ENV["RAILS_ENV"] = "test"
9
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
10
+
11
+ require 'rspec/rails'
12
+
13
+ Rails.backtrace_cleaner.remove_silencers!
14
+
15
+ # get some migrations up in here
16
+ ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
17
+ require File.expand_path("../dummy/db/seeds.rb", __FILE__)
18
+
19
+ RSpec.configure do |config|
20
+ require 'rspec/expectations'
21
+
22
+ #config.formatter = :documentation
23
+ config.use_transactional_fixtures = true
24
+ config.include RSpec::Matchers
25
25
  end
metadata CHANGED
@@ -1,74 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eav_hashes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
5
- prerelease:
4
+ version: 1.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ilya Ostrovskiy
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-16 00:00:00.000000000 Z
11
+ date: 2016-05-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.2.7
22
20
  type: :runtime
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: 3.2.7
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: sqlite3
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
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
40
  version: '0'
46
- description: ! " eav_hashes allows you to to leverage the power of the EAV database
47
- model in the way you would expect to use it:\n a hash. Unlike other gems which
48
- require you to create a special model and/or define which attributes you want to\n
49
- \ have EAV behavior on (both of which defeat the purpose), all you need to do
50
- with eav_hashes is add one line to your\n model and create a migration. All the
51
- heavy lifting is done for you.\n"
41
+ description: |2
42
+ eav_hashes allows you to to leverage the power of the EAV database model in the way you would expect to use it:
43
+ a hash. Unlike other gems which require you to create a special model and/or define which attributes you want to
44
+ have EAV behavior on (both of which defeat the purpose), all you need to do with eav_hashes is add one line to your
45
+ model and create a migration. All the heavy lifting is done for you.
52
46
  email:
53
47
  - ilya@200proof.cc
54
48
  executables: []
55
49
  extensions: []
56
50
  extra_rdoc_files: []
57
51
  files:
52
+ - MIT-LICENSE
53
+ - README.md
54
+ - Rakefile
55
+ - init.rb
56
+ - lib/eav_hashes.rb
58
57
  - lib/eav_hashes/activerecord_extension.rb
59
58
  - lib/eav_hashes/eav_entry.rb
60
59
  - lib/eav_hashes/eav_hash.rb
61
60
  - lib/eav_hashes/util.rb
62
61
  - lib/eav_hashes/version.rb
63
- - lib/eav_hashes.rb
62
+ - lib/generators/eav_migration/USAGE
64
63
  - lib/generators/eav_migration/eav_migration.rb
65
64
  - lib/generators/eav_migration/templates/eav_migration.erb
66
- - lib/generators/eav_migration/USAGE
67
65
  - lib/tasks/eav_hashes_tasks.rake
68
- - init.rb
69
- - MIT-LICENSE
70
- - Rakefile
71
- - README.md
66
+ - spec/dummy/README.rdoc
67
+ - spec/dummy/Rakefile
72
68
  - spec/dummy/app/assets/javascripts/application.js
73
69
  - spec/dummy/app/assets/stylesheets/application.css
74
70
  - spec/dummy/app/controllers/application_controller.rb
@@ -76,6 +72,7 @@ files:
76
72
  - spec/dummy/app/models/custom_test_object.rb
77
73
  - spec/dummy/app/models/product.rb
78
74
  - spec/dummy/app/views/layouts/application.html.erb
75
+ - spec/dummy/config.ru
79
76
  - spec/dummy/config/application.rb
80
77
  - spec/dummy/config/boot.rb
81
78
  - spec/dummy/config/database.yml
@@ -91,49 +88,39 @@ files:
91
88
  - spec/dummy/config/initializers/wrap_parameters.rb
92
89
  - spec/dummy/config/locales/en.yml
93
90
  - spec/dummy/config/routes.rb
94
- - spec/dummy/config.ru
95
- - spec/dummy/db/development.sqlite3
96
91
  - spec/dummy/db/migrate/20121206133059_create_products.rb
97
92
  - spec/dummy/db/migrate/20121210055854_create_product_tech_specs.rb
98
- - spec/dummy/db/schema.rb
99
93
  - spec/dummy/db/seeds.rb
100
- - spec/dummy/db/test.sqlite3
101
- - spec/dummy/log/development.log
102
- - spec/dummy/log/ENV=test.log
103
- - spec/dummy/log/test.log
104
94
  - spec/dummy/public/404.html
105
95
  - spec/dummy/public/422.html
106
96
  - spec/dummy/public/500.html
107
97
  - spec/dummy/public/favicon.ico
108
- - spec/dummy/Rakefile
109
- - spec/dummy/README.rdoc
110
98
  - spec/dummy/script/rails
111
99
  - spec/lib/eav_hashes/eav_hash_spec.rb
112
100
  - spec/lib/generators/eav_migration_spec.rb
113
101
  - spec/spec_helper.rb
114
102
  homepage: https://github.com/200proof/eav_hashes
115
103
  licenses: []
104
+ metadata: {}
116
105
  post_install_message:
117
106
  rdoc_options: []
118
107
  require_paths:
119
108
  - lib
120
109
  required_ruby_version: !ruby/object:Gem::Requirement
121
- none: false
122
110
  requirements:
123
- - - ! '>='
111
+ - - ">="
124
112
  - !ruby/object:Gem::Version
125
113
  version: '0'
126
114
  required_rubygems_version: !ruby/object:Gem::Requirement
127
- none: false
128
115
  requirements:
129
- - - ! '>='
116
+ - - ">="
130
117
  - !ruby/object:Gem::Version
131
118
  version: '0'
132
119
  requirements: []
133
120
  rubyforge_project:
134
- rubygems_version: 1.8.24
121
+ rubygems_version: 2.5.1
135
122
  signing_key:
136
- specification_version: 3
123
+ specification_version: 4
137
124
  summary: A developer-friendly implementation of the EAV model for Ruby on Rails.
138
125
  test_files:
139
126
  - spec/dummy/app/assets/javascripts/application.js
@@ -159,15 +146,9 @@ test_files:
159
146
  - spec/dummy/config/locales/en.yml
160
147
  - spec/dummy/config/routes.rb
161
148
  - spec/dummy/config.ru
162
- - spec/dummy/db/development.sqlite3
163
149
  - spec/dummy/db/migrate/20121206133059_create_products.rb
164
150
  - spec/dummy/db/migrate/20121210055854_create_product_tech_specs.rb
165
- - spec/dummy/db/schema.rb
166
151
  - spec/dummy/db/seeds.rb
167
- - spec/dummy/db/test.sqlite3
168
- - spec/dummy/log/development.log
169
- - spec/dummy/log/ENV=test.log
170
- - spec/dummy/log/test.log
171
152
  - spec/dummy/public/404.html
172
153
  - spec/dummy/public/422.html
173
154
  - spec/dummy/public/500.html
Binary file