polymorphic_integer_type 2.3.0 → 2.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6c2cf440c0f3c18a7617ca1afb6ef64df29f5318
4
- data.tar.gz: c69f7e53591f29f1ca30f34824fcd82cf0d8347f
2
+ SHA256:
3
+ metadata.gz: 0d7804d64bb9623f7c1e99d9cc3e9d87660c4aa0377dcb990d0f36116e9d0f84
4
+ data.tar.gz: 4530a6917ae04b9e5b22823551a2c999909b32406d899aad950ac26373db333a
5
5
  SHA512:
6
- metadata.gz: 6d53e634ae33cd8ea9be786f8e5d8416154773a5795bff1a9d9b943961336755d416fef200cea78655d67d74253b52d95d2c18d1949cbd71f98550bc40050e12
7
- data.tar.gz: 3a35e05e8c28d847255c7f16168bda71f176f247f6260e2d54879e2a295764fd8f5a93de7dbbb146505040477a7e0e162755d6f8983e57de0ded30ba796d8158
6
+ metadata.gz: 0017c3e990e834177af622495715ea839c720bd5d511faf9675ae74820e9bff2a2cf63c7d648b7098b135b009a88a7f5a8386ee359e412f22749c77980d18939
7
+ data.tar.gz: 156289387a5dd038b1c8380b18514e78f9f3c418c0fd0fff5deb844d8a94006ea742fd3cc47ed6948cf970f3e1dde106df0a60b781b388300ed969aa5f6bdb7c
data/README.md CHANGED
@@ -6,11 +6,11 @@ Rails' polymorphic associations are pretty useful. The example they give to set
6
6
  class Picture < ActiveRecord::Base
7
7
  belongs_to :imageable, polymorphic: true
8
8
  end
9
-
9
+
10
10
  class Employee < ActiveRecord::Base
11
11
  has_many :pictures, as: :imageable
12
12
  end
13
-
13
+
14
14
  class Product < ActiveRecord::Base
15
15
  has_many :pictures, as: :imageable
16
16
  end
@@ -31,7 +31,7 @@ class CreatePictures < ActiveRecord::Migration
31
31
  end
32
32
  ```
33
33
 
34
- The problem with this approach is that `imageable_type` is a string (and by default it is 255 characters). This is a little ridiculous. For comparison, if we had a state machine with X states, would we describe the states with strings `"State1", "State2", etc` or would we just enumerate the state column and make it an integer? This gem will allow us to use an integer for the `imageable_type` column.
34
+ The problem with this approach is that `imageable_type` is a string (and by default it is 255 characters). This is a little ridiculous. For comparison, if we had a state machine with X states, would we describe the states with strings `"State1", "State2", etc` or would we just enumerate the state column and make it an integer? This gem will allow us to use an integer for the `imageable_type` column.
35
35
 
36
36
  ## Installation
37
37
 
@@ -60,7 +60,7 @@ class Picture < ActiveRecord::Base
60
60
  belongs_to :imageable, polymorphic: {1 => "Employee", 2 => "Product"}
61
61
  end
62
62
  ```
63
-
63
+
64
64
  Next, include `PolymorphicIntegerType::Extensions` into any of the models that point back to the polymorphic integer type association (e.g., `Picture#imageable`) and add a [polymorphic association using `as:`](http://guides.rubyonrails.org/association_basics.html#polymorphic-associations).
65
65
 
66
66
  ```ruby
@@ -69,7 +69,7 @@ class Employee < ActiveRecord::Base
69
69
 
70
70
  has_many :pictures, as: :imageable
71
71
  end
72
-
72
+
73
73
  class Product < ActiveRecord::Base
74
74
  include PolymorphicIntegerType::Extensions
75
75
 
@@ -84,10 +84,10 @@ You can also store polymorphic type mappings separate from your models. This sho
84
84
  ```ruby
85
85
  PolymorphicIntegerType::Mapping.configuration do |config|
86
86
  config.add :imageable, {1 => "Employee", 2 => "Product" }
87
- end
87
+ end
88
88
  ```
89
89
 
90
- Note: The mapping here can start from whatever integer you wish, but I would advise not using 0. The reason being that if you had a new class, for instance `Avatar`, and also wanted to use this polymorphic association but forgot to include it in the mapping, it would effectively get `to_i` called on it and stored in the database. `"Avatar".to_i == 0`, so if your mapping included 0, this would create a weird bug.
90
+ Note: The mapping here can start from whatever integer you wish, but I would advise not using 0. The reason being that if you had a new class, for instance `Avatar`, and also wanted to use this polymorphic association but forgot to include it in the mapping, it would effectively get `to_i` called on it and stored in the database. `"Avatar".to_i == 0`, so if your mapping included 0, this would create a weird bug.
91
91
 
92
92
  ### Migrating an existing association
93
93
 
@@ -95,14 +95,14 @@ If you want to convert a polymorphic association that is already a string, you'l
95
95
 
96
96
  ```ruby
97
97
  class PictureToPolymorphicIntegerType < ActiveRecord::Migration
98
-
98
+
99
99
  def up
100
100
  change_table :pictures do |t|
101
101
  t.integer :new_imageable_type
102
102
  end
103
103
 
104
104
  execute <<-SQL
105
- UPDATE reminders
105
+ UPDATE picture
106
106
  SET new_imageable_type = CASE imageable_type
107
107
  WHEN 'Employee' THEN 1
108
108
  WHEN 'Product' THEN 2
@@ -3,6 +3,8 @@ ACTIVE_RECORD_VERSION = Gem::Version.new(ActiveRecord::VERSION::STRING)
3
3
  require "polymorphic_integer_type/version"
4
4
  require "polymorphic_integer_type/extensions"
5
5
  require "polymorphic_integer_type/mapping"
6
+ require "polymorphic_integer_type/module_generator"
7
+ require "polymorphic_integer_type/belongs_to_polymorphic_association_extension"
6
8
 
7
9
  if ACTIVE_RECORD_VERSION < Gem::Version.new("5")
8
10
  require "polymorphic_integer_type/activerecord_4/predicate_builder_extension"
@@ -14,8 +16,4 @@ if ACTIVE_RECORD_VERSION >= Gem::Version.new("5.0") && ACTIVE_RECORD_VERSION < G
14
16
  require "polymorphic_integer_type/activerecord_5_0_0/association_query_handler_extension"
15
17
  end
16
18
 
17
- if ACTIVE_RECORD_VERSION < Gem::Version.new("5.2.0")
18
- require "polymorphic_integer_type/activerecord_4/belongs_to_polymorphic_association_extension"
19
- end
20
-
21
19
  module PolymorphicIntegerType; end
@@ -1,17 +1,31 @@
1
1
  module PolymorphicIntegerType
2
2
  module PolymorphicArrayValueExtension
3
+
4
+ # original method:
5
+ # def type_to_ids_mapping
6
+ # default_hash = Hash.new { |hsh, key| hsh[key] = [] }
7
+ # result = values.each_with_object(default_hash) do |value, hash|
8
+ # hash[klass(value).polymorphic_name] << convert_to_id(value)
9
+ # end
10
+ # end
11
+
3
12
  def type_to_ids_mapping
4
- super.tap do |result|
5
- association = @associated_table.send(:association)
6
- klass = association.active_record
7
- name = association.name
13
+ association = @associated_table.send(:association)
14
+ name = association.name
15
+ default_hash = Hash.new { |hsh, key| hsh[key] = [] }
16
+ values.each_with_object(default_hash) do |value, hash|
17
+ klass = respond_to?(:klass, true) ? klass(value) : value.class
18
+ if association.active_record.respond_to?("#{name}_type_mapping")
19
+ mapping = association.active_record.send("#{name}_type_mapping")
20
+ key ||= mapping.key(klass.polymorphic_name) if klass.respond_to?(:polymorphic_name)
21
+ key ||= mapping.key(klass.sti_name)
22
+ key ||= mapping.key(klass.base_class.to_s)
23
+ key ||= mapping.key(klass.base_class.sti_name)
8
24
 
9
- if klass.respond_to?("#{name}_type_mapping")
10
- result.transform_keys! do |key|
11
- klass.send("#{name}_type_mapping").key(key)
12
- end
25
+ hash[key] << convert_to_id(value)
26
+ else
27
+ hash[klass.polymorphic_name] << convert_to_id(value)
13
28
  end
14
- result
15
29
  end
16
30
  end
17
31
  end
@@ -3,7 +3,9 @@ module ActiveRecord
3
3
  class BelongsToPolymorphicAssociation < BelongsToAssociation
4
4
  private def replace_keys(record)
5
5
  super
6
- owner[reflection.foreign_type] = record.class.base_class
6
+ unless record.nil?
7
+ owner[reflection.foreign_type] = record.class.base_class
8
+ end
7
9
  end
8
10
  end
9
11
  end
@@ -20,37 +20,11 @@ module PolymorphicIntegerType
20
20
  _polymorphic_foreign_types << foreign_type
21
21
 
22
22
  # Required way to dynamically define a class method on the model
23
- singleton_class.__send__(:define_method, "#{foreign_type}_mapping") do
23
+ define_singleton_method("#{foreign_type}_mapping") do
24
24
  mapping
25
25
  end
26
26
 
27
- foreign_type_extension = Module.new do
28
- define_method foreign_type do
29
- t = super()
30
- self.class.send("#{foreign_type}_mapping")[t]
31
- end
32
-
33
- define_method "#{foreign_type}=" do |klass|
34
- mapping = self.class.send("#{foreign_type}_mapping")
35
- enum = mapping.key(klass.to_s)
36
- if klass.kind_of?(Class) && klass <= ActiveRecord::Base
37
- enum ||= mapping.key(klass.polymorphic_name) if klass.respond_to?(:polymorphic_name)
38
- enum ||= mapping.key(klass.sti_name)
39
- enum ||= mapping.key(klass.base_class.to_s)
40
- enum ||= mapping.key(klass.base_class.sti_name)
41
- end
42
- enum ||= klass if klass != NilClass
43
- super(enum)
44
- end
45
-
46
- define_method "#{name}=" do |record|
47
- super(record)
48
- send("#{foreign_type}=", record.class)
49
- association(name).loaded!
50
- end
51
- end
52
-
53
- include(foreign_type_extension)
27
+ ModuleGenerator.generate_and_include(self, foreign_type, name)
54
28
 
55
29
  validate do
56
30
  t = send(foreign_type)
@@ -15,6 +15,6 @@ module PolymorphicIntegerType
15
15
  @@mapping[as] || {}
16
16
  end
17
17
 
18
+ singleton_class.send(:alias_method, :[]=, :add)
18
19
  end
19
-
20
20
  end
@@ -0,0 +1,34 @@
1
+ module PolymorphicIntegerType
2
+ class ModuleGenerator
3
+ def self.generate_and_include(klass,foreign_type, name)
4
+ foreign_type_extension = Module.new do
5
+ define_method foreign_type do
6
+ t = super()
7
+ self.class.send("#{foreign_type}_mapping")[t]
8
+ end
9
+
10
+ define_method "#{foreign_type}=" do |klass|
11
+ mapping = self.class.send("#{foreign_type}_mapping")
12
+ enum = mapping.key(klass.to_s)
13
+ if klass.kind_of?(Class) && klass <= ActiveRecord::Base
14
+ enum ||= mapping.key(klass.polymorphic_name) if klass.respond_to?(:polymorphic_name)
15
+ enum ||= mapping.key(klass.sti_name)
16
+ enum ||= mapping.key(klass.base_class.to_s)
17
+ enum ||= mapping.key(klass.base_class.sti_name)
18
+ end
19
+ enum ||= klass if klass != NilClass
20
+ super(enum)
21
+ end
22
+
23
+ define_method "#{name}=" do |record|
24
+ super(record)
25
+ send("#{foreign_type}=", record.class)
26
+ association(name).loaded!
27
+ end
28
+ end
29
+
30
+ klass.include(foreign_type_extension)
31
+ end
32
+ end
33
+ end
34
+
@@ -1,3 +1,3 @@
1
1
  module PolymorphicIntegerType
2
- VERSION = "2.3.0"
2
+ VERSION = "2.3.1"
3
3
  end
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "activerecord"
21
+ spec.add_dependency "activerecord", "< 6"
22
22
  spec.add_development_dependency "bundler"
23
23
  spec.add_development_dependency "rake"
24
24
  spec.add_development_dependency "rspec"
25
25
  spec.add_development_dependency "sqlite3"
26
- spec.add_development_dependency "byebug"
26
+ spec.add_development_dependency "pry-byebug"
27
27
  end
@@ -14,6 +14,50 @@ describe PolymorphicIntegerType do
14
14
 
15
15
  let(:link) { Link.create(source: source, target: target) }
16
16
 
17
+
18
+ context "when creating associations" do
19
+ it "sets the source_type" do
20
+ link = dog.source_links.new
21
+ expect(link.source_type).to eq("Animal")
22
+ end
23
+
24
+ it "sets the target_type" do
25
+ link = kibble.target_links.new
26
+ expect(link.target_type).to eq("Food")
27
+ end
28
+
29
+ context "when models are namespaced" do
30
+ context "and mappings include namespaces" do
31
+ it "sets the source_type" do
32
+ allow(Link).to receive(:source_type_mapping).and_return({3 => "Namespaced::Plant"})
33
+ allow(Link).to receive(:source_type_mapping2).and_return({3 => "Namespaced::Plant"})
34
+
35
+ link = Namespaced::Plant.create(name: "Oak").source_links.new
36
+ expect(link.source_type).to eq("Namespaced::Plant")
37
+ end
38
+
39
+ it "sets the target_type" do
40
+ allow(Link).to receive(:target_type_mapping).and_return({3 => "Namespaced::Activity"})
41
+ link = Namespaced::Activity.create(name: "swaying").target_links.new
42
+ expect(link.target_type).to eq("Namespaced::Activity")
43
+ end
44
+ end
45
+
46
+ context "and mappings don't include namespaces" do
47
+ it "sets the source type" do
48
+ Link.source_type_mapping
49
+ link = Namespaced::Plant.create(name: "Oak").source_links.new
50
+ expect(link.source_type).to eq("Plant")
51
+ end
52
+
53
+ it "sets the target type" do
54
+ link = Namespaced::Activity.create(name:"swaying").target_links.new
55
+ expect(link.target_type).to eq("Activity")
56
+ end
57
+ end
58
+ end
59
+ end
60
+
17
61
  context "when the source is nil" do
18
62
  let(:source) { nil }
19
63
  let(:target) { nil }
@@ -73,6 +117,15 @@ describe PolymorphicIntegerType do
73
117
  it "properly finds the object with a find_by" do
74
118
  expect(Link.find_by(source: source, id: link.id)).to eql link
75
119
  end
120
+
121
+ context "when source and target are namespaced without modifying polymorphic_name" do
122
+ it "properly finds the object" do
123
+ plant = Namespaced::Plant.create(name: "Mighty", kind: "Oak", owner: owner)
124
+ activity = Namespaced::Activity.create(name: "swaying")
125
+ link = Link.create(source: plant, target: activity)
126
+ expect(Link.where(source: plant, id: link.id).first).to eql link
127
+ end
128
+ end
76
129
  end
77
130
 
78
131
  shared_examples "proper source" do
@@ -103,7 +156,6 @@ describe PolymorphicIntegerType do
103
156
  expect(source.source_links[0].source).to eql source
104
157
  end
105
158
  end
106
-
107
159
  end
108
160
  context "When a link is given polymorphic record" do
109
161
  let(:link) { Link.create(source: source) }
@@ -116,9 +168,7 @@ describe PolymorphicIntegerType do
116
168
 
117
169
  include_examples "proper source"
118
170
  include_examples "proper target"
119
-
120
171
  end
121
-
122
172
  end
123
173
 
124
174
  context "When a link is given polymorphic id and type" do
@@ -131,9 +181,7 @@ describe PolymorphicIntegerType do
131
181
  before { link.update_attributes(target_id: target.id, target_type: target.class.to_s) }
132
182
  include_examples "proper source"
133
183
  include_examples "proper target"
134
-
135
184
  end
136
-
137
185
  end
138
186
 
139
187
  context "When using a relation to the links with eager loading" do
@@ -146,9 +194,7 @@ describe PolymorphicIntegerType do
146
194
  it "should be able to return the links and the targets" do
147
195
  expect(cat.source_links).to match_array links
148
196
  expect(cat.source_links.includes(:target).collect(&:target)).to match_array [water, kibble]
149
-
150
197
  end
151
-
152
198
  end
153
199
 
154
200
  context "When using a through relation to the links with eager loading" do
@@ -161,9 +207,7 @@ describe PolymorphicIntegerType do
161
207
  it "should be able to return the links and the targets" do
162
208
  expect(owner.pet_source_links).to match_array links
163
209
  expect(owner.pet_source_links.includes(:target).collect(&:target)).to match_array [water, kibble]
164
-
165
210
  end
166
-
167
211
  end
168
212
 
169
213
  context "When eager loading the polymorphic association" do
@@ -178,16 +222,12 @@ describe PolymorphicIntegerType do
178
222
  expect(links.first.source).to eql cat
179
223
  expect(links.last.source).to eql dog
180
224
  end
181
-
182
225
  end
183
226
 
184
227
  it "should be able to preload the association" do
185
228
  l = Link.includes(:source).where(id: link.id).first
186
229
  expect(l.source).to eql cat
187
230
  end
188
-
189
-
190
-
191
231
  end
192
232
 
193
233
  context "when the association is an STI table" do
@@ -239,7 +279,7 @@ describe PolymorphicIntegerType do
239
279
  include_examples "proper target"
240
280
 
241
281
  it "creates foreign_type mapping method" do
242
- expect(Link.source_type_mapping).to eq({1 => "Person", 2 => "Animal"})
282
+ expect(Link.source_type_mapping).to eq({1 => "Person", 2 => "Animal", 3 => "Plant"})
243
283
  expect(InlineLink.source_type_mapping).to eq({10 => "Person", 11 => "InlineAnimal"})
244
284
  end
245
285
 
@@ -5,11 +5,14 @@ require 'support/configuration'
5
5
  require 'support/link'
6
6
  require 'support/animal'
7
7
  require 'support/namespaced_animal'
8
+ require 'support/namespaced_plant'
8
9
  require 'support/dog'
9
10
  require 'support/person'
10
11
  require 'support/food'
11
12
  require 'support/drink'
13
+ require 'support/namespaced_activity'
12
14
  require 'byebug'
15
+ require 'pry'
13
16
 
14
17
  RSpec.configure do |config|
15
18
  config.before(:suite) do
@@ -1,4 +1,4 @@
1
1
  PolymorphicIntegerType::Mapping.configuration do |config|
2
- config.add :source, {1 => "Person", 2 => "Animal"}
3
- config.add :target, {1 => "Food", 2 => "Drink"}
2
+ config.add :source, {1 => "Person", 2 => "Animal", 3 => "Plant"}
3
+ config.add :target, {1 => "Food", 2 => "Drink", 3 => "Activity"}
4
4
  end
@@ -3,12 +3,4 @@ class Link < ActiveRecord::Base
3
3
 
4
4
  belongs_to :source, polymorphic: true, integer_type: true
5
5
  belongs_to :target, polymorphic: true, integer_type: true
6
-
7
- def source=(val)
8
- super(val)
9
- end
10
-
11
- def source_type=(val)
12
- super(val)
13
- end
14
6
  end
@@ -0,0 +1,17 @@
1
+ class CreatePlantTable < ActiveRecord::Migration[5.2]
2
+
3
+ def up
4
+ create_table :plants do |t|
5
+ t.string :name
6
+ t.string :type
7
+ t.string :kind
8
+ t.integer :owner_id
9
+ end
10
+ end
11
+
12
+ def down
13
+ drop_table :plants
14
+ end
15
+
16
+ end
17
+
@@ -0,0 +1,15 @@
1
+ class CreateActivityTable < ActiveRecord::Migration[5.2]
2
+
3
+ def up
4
+ create_table :activities do |t|
5
+ t.string :name
6
+ end
7
+ end
8
+
9
+ def down
10
+ drop_table :activities
11
+ end
12
+
13
+ end
14
+
15
+
@@ -0,0 +1,11 @@
1
+ module Namespaced
2
+ class Activity < ActiveRecord::Base
3
+ include PolymorphicIntegerType::Extensions
4
+
5
+ self.store_full_sti_class = false
6
+ self.table_name = "activities"
7
+
8
+ has_many :target_links, as: :target, inverse_of: :target, integer_type: true, class_name: "Link"
9
+ end
10
+ end
11
+
@@ -0,0 +1,11 @@
1
+ module Namespaced
2
+ class Plant < ActiveRecord::Base
3
+ include PolymorphicIntegerType::Extensions
4
+
5
+ self.store_full_sti_class = false
6
+ self.table_name = "plants"
7
+
8
+ belongs_to :owner, class_name: "Person"
9
+ has_many :source_links, as: :source, inverse_of: :source, integer_type: true, class_name: "Link"
10
+ end
11
+ end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polymorphic_integer_type
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle d'Oliveira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-28 00:00:00.000000000 Z
11
+ date: 2020-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "<"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "<"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: byebug
84
+ name: pry-byebug
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -117,12 +117,13 @@ files:
117
117
  - gemfiles/Gemfile.rails-5.2-stable
118
118
  - gemfiles/Gemfile.rails-5.2-stable.lock
119
119
  - lib/polymorphic_integer_type.rb
120
- - lib/polymorphic_integer_type/activerecord_4/belongs_to_polymorphic_association_extension.rb
121
120
  - lib/polymorphic_integer_type/activerecord_4/predicate_builder_extension.rb
122
121
  - lib/polymorphic_integer_type/activerecord_5_0_0/association_query_handler_extension.rb
123
122
  - lib/polymorphic_integer_type/activerecord_5_0_0/polymorphic_array_value_extension.rb
123
+ - lib/polymorphic_integer_type/belongs_to_polymorphic_association_extension.rb
124
124
  - lib/polymorphic_integer_type/extensions.rb
125
125
  - lib/polymorphic_integer_type/mapping.rb
126
+ - lib/polymorphic_integer_type/module_generator.rb
126
127
  - lib/polymorphic_integer_type/version.rb
127
128
  - polymorphic_integer_type.gemspec
128
129
  - spec/polymorphic_integer_type_spec.rb
@@ -139,7 +140,11 @@ files:
139
140
  - spec/support/migrations/3_create_person_table.rb
140
141
  - spec/support/migrations/4_create_food_table.rb
141
142
  - spec/support/migrations/5_create_drink_table.rb
143
+ - spec/support/migrations/6_create_plant_table.rb
144
+ - spec/support/migrations/7_create_activity_table.rb
145
+ - spec/support/namespaced_activity.rb
142
146
  - spec/support/namespaced_animal.rb
147
+ - spec/support/namespaced_plant.rb
143
148
  - spec/support/person.rb
144
149
  homepage: ''
145
150
  licenses:
@@ -161,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
166
  version: '0'
162
167
  requirements: []
163
168
  rubyforge_project:
164
- rubygems_version: 2.6.14
169
+ rubygems_version: 2.7.9
165
170
  signing_key:
166
171
  specification_version: 4
167
172
  summary: Use integers rather than strings for the _type field
@@ -180,5 +185,9 @@ test_files:
180
185
  - spec/support/migrations/3_create_person_table.rb
181
186
  - spec/support/migrations/4_create_food_table.rb
182
187
  - spec/support/migrations/5_create_drink_table.rb
188
+ - spec/support/migrations/6_create_plant_table.rb
189
+ - spec/support/migrations/7_create_activity_table.rb
190
+ - spec/support/namespaced_activity.rb
183
191
  - spec/support/namespaced_animal.rb
192
+ - spec/support/namespaced_plant.rb
184
193
  - spec/support/person.rb