eav_hashes 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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