mongoid 5.1.4 → 5.1.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 79c4a036b0cdf460779fe1d838cd9c47fefa997a
4
- data.tar.gz: f9eccd20ec1cf43dc5696e9f28b66ac1511b92cb
3
+ metadata.gz: abf3bc71acef310e6e22c9900a173ef44adcffe9
4
+ data.tar.gz: 3178495b48b2377e77929352b9349c02adee7017
5
5
  SHA512:
6
- metadata.gz: 373ef0d42a812e2bd55b9f0c84fb4c40ef0720821127ad615b9fe1f30a15273dbe68126bb0e5c4981af9fbb30f90c51ba0dfba2dfae7738db75e3d128398acee
7
- data.tar.gz: ea57593ae912660e765caaa3effce3b3355944fb77859ad8d52166b8f6ab8a6b013f2d01380ebb513ec67b4606040f2cd912894459558c8f7bc305d50349d673
6
+ metadata.gz: 16106f196625909b1bbefd3bea0ab5e7b3397cd8055108c01c7f5b1ae7dc485810a9fa78ab5975b3794e2db8a2fe2b82d9c8d3e18b69e762f2ff994727397eba
7
+ data.tar.gz: e08c0e8efaa17427d5d3e329322dd367b72a44eb5f3a5c9e2d0d1c9bf5d4bebcae313ee155dbb5f78578cd98a767f2a7e78fad5747c87221176da465321384ab
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -115,10 +115,7 @@ en:
115
115
  invalid_includes:
116
116
  message: "Invalid includes directive: %{klass}.includes(%{args})"
117
117
  summary: "Eager loading in Mongoid only supports providing arguments
118
- to %{klass}.includes that are the names of relations on the %{klass}
119
- model, and only supports one level of eager loading. (ie, eager loading
120
- associations not on the %{klass} but one step away via another relation
121
- is not allowed."
118
+ to %{klass}.includes that are the names of relations on the %{klass}."
122
119
  resolution: "Ensure that each parameter passed to %{klass}.includes is
123
120
  a valid name of a relation on the %{klass} model. These are: %{relations}."
124
121
  invalid_index:
@@ -44,12 +44,12 @@ module Mongoid
44
44
 
45
45
  def mongo_client
46
46
  tmp = persistence_options
47
- if opts = tmp && tmp.dup
47
+ if (opts = tmp && !tmp.empty? && tmp.dup)
48
48
  if opts[:client]
49
49
  client = Clients.with_name(opts[:client])
50
50
  else
51
51
  client = Clients.with_name(self.class.client_name)
52
- client.use(self.class.database_name)
52
+ client = client.use(self.class.database_name)
53
53
  end
54
54
  client.with(opts.reject{ |k, v| k == :collection || k == :client })
55
55
  end
@@ -130,9 +130,7 @@ module Mongoid
130
130
  #
131
131
  # @since 3.0.0
132
132
  def first
133
- doc = documents.first
134
- eager_load_one(doc)
135
- doc
133
+ eager_load([documents.first]).first
136
134
  end
137
135
  alias :one :first
138
136
  alias :find_first :first
@@ -165,9 +163,7 @@ module Mongoid
165
163
  #
166
164
  # @since 3.0.0
167
165
  def last
168
- doc = documents.last
169
- eager_load_one(doc)
170
- doc
166
+ eager_load([documents.last]).first
171
167
  end
172
168
 
173
169
  # Get the length of matching documents in the context.
@@ -237,7 +237,10 @@ module Mongoid
237
237
  def first
238
238
  return documents.first if cached? && cache_loaded?
239
239
  try_cache(:first) do
240
- with_eager_loading(view.limit(-1).first)
240
+ if raw_doc = view.limit(-1).first
241
+ doc = Factory.from_db(klass, raw_doc, criteria.options[:fields])
242
+ eager_load([doc]).first
243
+ end
241
244
  end
242
245
  end
243
246
  alias :one :first
@@ -249,7 +252,10 @@ module Mongoid
249
252
  # @since 4.0.2
250
253
  def find_first
251
254
  return documents.first if cached? && cache_loaded?
252
- with_eager_loading(view.first)
255
+ if raw_doc = view.first
256
+ doc = Factory.from_db(klass, raw_doc, criteria.options[:fields])
257
+ eager_load([doc]).first
258
+ end
253
259
  end
254
260
 
255
261
  # Execute a $geoNear command against the database.
@@ -334,7 +340,10 @@ module Mongoid
334
340
  def last
335
341
  try_cache(:last) do
336
342
  with_inverse_sorting do
337
- with_eager_loading(view.limit(-1).first)
343
+ if raw_doc = view.limit(-1).first
344
+ doc = Factory.from_db(klass, raw_doc, criteria.options[:fields])
345
+ eager_load([doc]).first
346
+ end
338
347
  end
339
348
  end
340
349
  end
@@ -643,15 +652,9 @@ module Mongoid
643
652
  #
644
653
  # @since 3.0.0
645
654
  def documents_for_iteration
646
- if cached? && !documents.empty?
647
- documents
648
- elsif eager_loadable?
649
- docs = view.map{ |doc| Factory.from_db(klass, doc, criteria.options[:fields]) }
650
- eager_load(docs)
651
- docs
652
- else
653
- view
654
- end
655
+ return documents if cached? && !documents.empty?
656
+ docs = view.map{ |doc| Factory.from_db(klass, doc, criteria.options[:fields]) }
657
+ eager_load(docs)
655
658
  end
656
659
 
657
660
  # Yield to the document.
@@ -667,10 +670,8 @@ module Mongoid
667
670
  #
668
671
  # @since 3.0.0
669
672
  def yield_document(document, &block)
670
- doc = document.respond_to?(:_id) ?
671
- document : Factory.from_db(klass, document, criteria.options[:fields])
672
- yield(doc)
673
- documents.push(doc) if cacheable?
673
+ yield(document)
674
+ documents.push(document) if cacheable?
674
675
  end
675
676
  end
676
677
  end
@@ -27,13 +27,7 @@ module Mongoid
27
27
  #
28
28
  # @since 2.2.0
29
29
  def includes(*relations)
30
- relations.flatten.each do |relation|
31
- if relation.is_a?(Hash)
32
- extract_nested_inclusion(klass, relation)
33
- else
34
- add_inclusion(klass, relation)
35
- end
36
- end
30
+ extract_includes_list(klass, relations)
37
31
  clone
38
32
  end
39
33
 
@@ -76,67 +70,26 @@ module Mongoid
76
70
  # @raise [ Errors::InvalidIncludes ] If no relation is found.
77
71
  #
78
72
  # @since 5.1.0
79
- def add_inclusion(_klass, relation)
80
- metadata = get_inclusion_metadata(_klass, relation)
81
- raise Errors::InvalidIncludes.new(_klass, [ relation ]) unless metadata
73
+ def add_inclusion(_klass, metadata)
82
74
  inclusions.push(metadata) unless inclusions.include?(metadata)
83
75
  end
84
76
 
85
- # Extract inclusion definitions from a list.
86
- #
87
- # @example Extract the inclusions from a list.
88
- # criteria.extract_relations_list(:posts, [{ :alerts => :items }])
89
- #
90
- # @param [ Symbol ] association The name of the association.
91
- # @param [ Array ] relations A list of associations.
92
- #
93
- # @since 5.1.0
94
- def extract_relations_list(association, relations)
95
- relations.each do |relation|
96
- if relation.is_a?(Hash)
97
- extract_nested_inclusion(association, relation)
77
+ def extract_includes_list(_parent_class, *relations_list)
78
+ relations_list.flatten.each do |relation_object|
79
+ if relation_object.is_a?(Hash)
80
+ relation_object.each do |relation, _includes|
81
+ metadata = _parent_class.reflect_on_association(relation)
82
+ raise Errors::InvalidIncludes.new(_klass, [ relation ]) unless metadata
83
+ add_inclusion(_parent_class, metadata)
84
+ extract_includes_list(metadata.klass, _includes)
85
+ end
98
86
  else
99
- add_inclusion(association, relation)
87
+ metadata = _parent_class.reflect_on_association(relation_object)
88
+ raise Errors::InvalidIncludes.new(_parent_class, [ relation_object ]) unless metadata
89
+ add_inclusion(_parent_class, metadata)
100
90
  end
101
91
  end
102
92
  end
103
-
104
- # Extract nested inclusion.
105
- #
106
- # @example Extract the inclusions from a nested definition.
107
- # criteria.extract_nested_inclusion(User, { :posts => [:alerts] })
108
- #
109
- # @param [ Class, Symbol ] _klass The class for which the inclusion should be added.
110
- # @param [ Hash ] relation The nested inclusion.
111
- #
112
- # @since 5.1.0
113
- def extract_nested_inclusion(_klass, relation)
114
- relation.each do |association, _inclusion|
115
- add_inclusion(_klass, association)
116
- if _inclusion.is_a?(Array)
117
- extract_relations_list(association, _inclusion)
118
- else
119
- add_inclusion(association, _inclusion)
120
- end
121
- end
122
- end
123
-
124
- # Get the metadata for an inclusion.
125
- #
126
- # @example Get the metadata for an inclusion definition.
127
- # criteria.get_inclusion_metadata(User, :posts)
128
- #
129
- # @param [ Class, Symbol, String ] _klass The class for determining the association metadata
130
- # @param [ Symbol ] association The name of the association.
131
- #
132
- # @since 5.1.0
133
- def get_inclusion_metadata(_klass, association)
134
- if _klass.is_a?(Class)
135
- _klass.reflect_on_association(association)
136
- else
137
- _klass.to_s.classify.constantize.reflect_on_association(association)
138
- end
139
- end
140
93
  end
141
94
  end
142
95
  end
@@ -22,7 +22,16 @@ module Mongoid
22
22
  def set(setters)
23
23
  prepare_atomic_operation do |ops|
24
24
  process_atomic_operations(setters) do |field, value|
25
- process_attribute(field.to_s, value)
25
+
26
+ field_and_value_hash = hasherizer(field.split('.'), value)
27
+ field = field_and_value_hash.keys.first.to_s
28
+
29
+ if fields[field] && fields[field].type == Hash && attributes.key?(field)
30
+ process_attribute(field.to_s, attributes[field].merge(field_and_value_hash[field]))
31
+ else
32
+ process_attribute(field.to_s, field_and_value_hash[field])
33
+ end
34
+
26
35
  unless relations.include?(field.to_s)
27
36
  ops[atomic_attribute_name(field)] = attributes[field]
28
37
  end
@@ -105,10 +105,10 @@ module Mongoid
105
105
 
106
106
  after_update do
107
107
  if record = __send__(name)
108
- id_field = "#{name}_id"
108
+ foreign_key = meta.foreign_key
109
109
 
110
- if attribute_changed?(id_field)
111
- original, current = attribute_change(id_field)
110
+ if attribute_changed?(foreign_key)
111
+ original, current = attribute_change(foreign_key)
112
112
 
113
113
  unless original.nil?
114
114
  record.class.decrement_counter(cache_column, original)
@@ -9,28 +9,16 @@ module Mongoid
9
9
  module Relations
10
10
  module Eager
11
11
 
12
- attr_accessor :eager_loaded
13
-
14
- def with_eager_loading(document)
15
- return nil unless document
16
- doc = Factory.from_db(klass, document, criteria.options[:fields])
17
- eager_load_one(doc)
18
- doc
19
- end
20
-
21
- def eager_load_one(doc)
22
- eager_load([doc])
23
- end
24
-
25
- def eager_loadable?(document = nil)
26
- return false if criteria.inclusions.empty?
27
- !eager_loaded
12
+ def eager_loadable?
13
+ !criteria.inclusions.empty?
28
14
  end
29
15
 
30
16
  def eager_load(docs)
31
- return false unless eager_loadable?
32
- preload(criteria.inclusions, docs)
33
- self.eager_loaded = true
17
+ docs.tap do |docs|
18
+ if eager_loadable?
19
+ preload(criteria.inclusions, docs)
20
+ end
21
+ end
34
22
  end
35
23
 
36
24
  def preload(relations, docs)
@@ -145,7 +145,7 @@ module Mongoid
145
145
  #
146
146
  # @since 4.0.0
147
147
  def set_relation(doc, element)
148
- doc.set_relation(@metadata.name, element)
148
+ doc.set_relation(@metadata.name, element) unless doc.blank?
149
149
  end
150
150
  end
151
151
  end
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Mongoid
3
- VERSION = "5.1.4"
3
+ VERSION = "5.1.5"
4
4
  end
@@ -1,4 +1,6 @@
1
1
  class Church
2
2
  include Mongoid::Document
3
3
  has_many :acolytes, validate: false
4
+ field :location, type: Hash
5
+ field :name, type: String
4
6
  end
@@ -11,6 +11,7 @@ class Post
11
11
 
12
12
  belongs_to :person, counter_cache: true
13
13
  belongs_to :author, foreign_key: :author_id, class_name: "User"
14
+ belongs_to :post_genre, foreign_key: :genre_id, counter_cache: true
14
15
  has_and_belongs_to_many :tags, before_add: :before_add_tag, after_add: :after_add_tag, before_remove: :before_remove_tag, after_remove: :after_remove_tag
15
16
  has_many :videos, validate: false
16
17
  has_many :roles, validate: false
@@ -0,0 +1,6 @@
1
+ class PostGenre
2
+ include Mongoid::Document
3
+ field :posts_count, type: Integer, default: 0
4
+
5
+ has_many :posts, inverse_of: :genre
6
+ end
@@ -731,27 +731,42 @@ describe Mongoid::Clients do
731
731
 
732
732
  context "when the override is global" do
733
733
 
734
- before do
735
- Mongoid.override_database(:mongoid_optional)
736
- end
734
+ shared_examples_for "a global database override" do
737
735
 
738
- after do
739
- Band.delete_all
740
- Mongoid.override_database(nil)
741
- end
736
+ before do
737
+ Mongoid.override_database(:mongoid_optional)
738
+ end
742
739
 
743
- let!(:band) do
744
- Band.create(name: "Tool")
745
- end
740
+ after do
741
+ Band.delete_all
742
+ Mongoid.override_database(nil)
743
+ end
744
+
745
+ let!(:band) do
746
+ klass.create(name: "Tool")
747
+ end
748
+
749
+ it "persists to the overridden database" do
750
+ mongo_client = Band.mongo_client.with(database: :mongoid_optional)
751
+ expect(mongo_client[:bands].count(name: "Tool")).to eq(1)
752
+ end
746
753
 
747
- it "persists to the overridden database" do
748
- Band.mongo_client.with(database: :mongoid_optional) do |sess|
749
- expect(sess[:bands].find(name: "Tool")).to_not be_nil
754
+ it 'uses that database for the model mongo_client' do
755
+ expect(Band.mongo_client.database.name).to eq('mongoid_optional')
750
756
  end
751
757
  end
752
758
 
753
- it 'uses that database for the model mongo_client' do
754
- expect(Band.mongo_client.database.name).to eq('mongoid_optional')
759
+ context "when normal usage" do
760
+ let(:klass) { Band }
761
+
762
+ it_behaves_like "a global database override"
763
+ end
764
+
765
+ context "when overriding the persistence options" do
766
+
767
+ let(:klass) { Band.with(connect_timeout: 10) }
768
+
769
+ it_behaves_like "a global database override"
755
770
  end
756
771
  end
757
772
  end
@@ -115,21 +115,6 @@ describe Mongoid::Contextual::Mongo do
115
115
  end
116
116
  end
117
117
 
118
- context "when provided a document" do
119
-
120
- let(:context) do
121
- described_class.new(criteria)
122
- end
123
-
124
- let(:count) do
125
- context.count(depeche)
126
- end
127
-
128
- it "returns the number of documents that match" do
129
- expect(count).to eq(1)
130
- end
131
- end
132
-
133
118
  context "when provided a block" do
134
119
 
135
120
  let(:context) do
@@ -1147,6 +1147,29 @@ describe Mongoid::Criteria do
1147
1147
  end
1148
1148
  end
1149
1149
 
1150
+ context "when providing one association" do
1151
+
1152
+ let!(:user) do
1153
+ User.create(posts: [ post1 ])
1154
+ end
1155
+
1156
+ let!(:post1) do
1157
+ Post.create
1158
+ end
1159
+
1160
+ let(:result) do
1161
+ User.includes(:posts).first
1162
+ end
1163
+
1164
+ it "executes the query" do
1165
+ expect(result).to eq(user)
1166
+ end
1167
+
1168
+ it "includes the related objects" do
1169
+ expect(result.posts).to eq([ post1 ])
1170
+ end
1171
+ end
1172
+
1150
1173
  context "when providing a list of associations" do
1151
1174
 
1152
1175
  let!(:user) do
@@ -1504,13 +1527,6 @@ describe Mongoid::Criteria do
1504
1527
  end
1505
1528
  end
1506
1529
 
1507
- it "does not eager load the first document" do
1508
- doc = criteria.first
1509
- expect_query(1) do
1510
- expect(doc.person).to eq(person)
1511
- end
1512
- end
1513
-
1514
1530
  it "returns the last document" do
1515
1531
  expect(document).to eq(post_two)
1516
1532
  end
@@ -1566,13 +1582,6 @@ describe Mongoid::Criteria do
1566
1582
  end
1567
1583
  end
1568
1584
 
1569
- it "does not eager load the last document" do
1570
- doc = criteria.last
1571
- expect_query(1) do
1572
- expect(doc.band).to eq(tool)
1573
- end
1574
- end
1575
-
1576
1585
  it "returns the document" do
1577
1586
  expect(document).to eq(address_one)
1578
1587
  end
@@ -1598,13 +1607,6 @@ describe Mongoid::Criteria do
1598
1607
  end
1599
1608
  end
1600
1609
 
1601
- it "does not eager load the first document" do
1602
- doc = criteria.first
1603
- expect_query(1) do
1604
- expect(doc.band).to eq(depeche)
1605
- end
1606
- end
1607
-
1608
1610
  it "returns the document" do
1609
1611
  expect(document).to eq(address_two)
1610
1612
  end
@@ -1698,7 +1700,7 @@ describe Mongoid::Criteria do
1698
1700
  end
1699
1701
 
1700
1702
  before do
1701
- expect(new_context).to receive(:eager_load_one).with(person).once.and_call_original
1703
+ expect(new_context).to receive(:eager_load).with([person]).once.and_call_original
1702
1704
  end
1703
1705
 
1704
1706
  let!(:from_db) do
@@ -1749,7 +1751,7 @@ describe Mongoid::Criteria do
1749
1751
  end
1750
1752
 
1751
1753
  before do
1752
- expect(context).to receive(:eager_load_one).with(person).once.and_call_original
1754
+ expect(context).to receive(:eager_load).with([person]).once.and_call_original
1753
1755
  end
1754
1756
 
1755
1757
  let!(:from_db) do
@@ -2128,7 +2130,7 @@ describe Mongoid::Criteria do
2128
2130
  end
2129
2131
 
2130
2132
  before do
2131
- expect(context).to receive(:eager_load).with([ game_one, game_two ]).once.and_call_original
2133
+ expect(context).to receive(:preload).twice.and_call_original
2132
2134
  end
2133
2135
 
2134
2136
  let!(:documents) do
@@ -2191,7 +2193,7 @@ describe Mongoid::Criteria do
2191
2193
  end
2192
2194
 
2193
2195
  before do
2194
- expect(context).to receive(:eager_load).with([ person ]).once.and_call_original
2196
+ expect(context).to receive(:preload).twice.and_call_original
2195
2197
  end
2196
2198
 
2197
2199
  let!(:documents) do
@@ -204,4 +204,116 @@ describe Mongoid::Persistable::Settable do
204
204
  expect(agent.reload.title).to eq title
205
205
  end
206
206
  end
207
+
208
+ context 'when the field is already set locally' do
209
+
210
+ let(:church) do
211
+ Church.new.tap do |a|
212
+ a.location = { 'city' => 'Berlin' }
213
+ a.name = 'Church1'
214
+ a.save
215
+ end
216
+ end
217
+
218
+ context 'when the field is a Hash type' do
219
+
220
+ before do
221
+ church.set('location.neighborhood' => 'Kreuzberg')
222
+ end
223
+
224
+ it 'updates the hash while keeping existing key and values locally' do
225
+ expect(church.location).to eq({ 'city' => 'Berlin', 'neighborhood' => 'Kreuzberg'})
226
+ end
227
+
228
+ it 'updates the hash in the database' do
229
+ expect(church.reload.location).to eq({ 'city' => 'Berlin', 'neighborhood' => 'Kreuzberg'})
230
+ end
231
+ end
232
+
233
+ context 'when the field type is String' do
234
+
235
+ before do
236
+ church.set('name' => 'Church2')
237
+ end
238
+
239
+ it 'updates the field locally' do
240
+ expect(church.name).to eq('Church2')
241
+ end
242
+
243
+ it 'updates the field in the database' do
244
+ expect(church.reload.name).to eq('Church2')
245
+ end
246
+ end
247
+
248
+ context 'when there are two fields of type Hash and String' do
249
+
250
+ before do
251
+ church.set('name' => 'Church2', 'location.street' => 'Yorckstr.')
252
+ end
253
+
254
+ it 'updates the fields locally' do
255
+ expect(church.name).to eq('Church2')
256
+ expect(church.location).to eq({ 'city' => 'Berlin', 'street' => 'Yorckstr.'})
257
+ end
258
+
259
+ it 'updates the fields in the database' do
260
+ expect(church.reload.name).to eq('Church2')
261
+ expect(church.reload.location).to eq({ 'city' => 'Berlin', 'street' => 'Yorckstr.'})
262
+ end
263
+ end
264
+ end
265
+
266
+ context 'when the field is not already set locally' do
267
+
268
+ let(:church) do
269
+ Church.create
270
+ end
271
+
272
+ context 'when the field is a Hash type' do
273
+
274
+ before do
275
+ church.set('location.neighborhood' => 'Kreuzberg')
276
+ end
277
+
278
+ it 'sets the hash locally' do
279
+ expect(church.location).to eq({ 'neighborhood' => 'Kreuzberg'})
280
+ end
281
+
282
+ it 'sets the hash in the database' do
283
+ expect(church.reload.location).to eq({ 'neighborhood' => 'Kreuzberg'})
284
+ end
285
+ end
286
+
287
+ context 'when the field type is String' do
288
+
289
+ before do
290
+ church.set('name' => 'Church2')
291
+ end
292
+
293
+ it 'sets the field locally' do
294
+ expect(church.name).to eq('Church2')
295
+ end
296
+
297
+ it 'sets the field in the database' do
298
+ expect(church.reload.name).to eq('Church2')
299
+ end
300
+ end
301
+
302
+ context 'when there are two fields of type Hash and String' do
303
+
304
+ before do
305
+ church.set('name' => 'Church2', 'location.street' => 'Yorckstr.')
306
+ end
307
+
308
+ it 'sets the fields locally' do
309
+ expect(church.name).to eq('Church2')
310
+ expect(church.location).to eq({ 'street' => 'Yorckstr.'})
311
+ end
312
+
313
+ it 'sets the fields in the database' do
314
+ expect(church.reload.name).to eq('Church2')
315
+ expect(church.reload.location).to eq({ 'street' => 'Yorckstr.'})
316
+ end
317
+ end
318
+ end
207
319
  end
@@ -351,6 +351,18 @@ describe Mongoid::Relations::CounterCache do
351
351
  it "updates the original object's counter cache" do
352
352
  expect(person1.reload.drugs_count).to eq(1)
353
353
  end
354
+
355
+ context 'when foreign_key differs from model name' do
356
+
357
+ let(:genre) { PostGenre.create }
358
+
359
+ let(:post) { Post.create }
360
+
361
+ it 'updates correct counter cache' do
362
+ post.update post_genre: genre
363
+ expect(genre.reload.posts_count).to eq 1
364
+ end
365
+ end
354
366
  end
355
367
  end
356
368
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.4
4
+ version: 5.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
@@ -30,7 +30,7 @@ cert_chain:
30
30
  ZIvvwAhgCjVW5QCi2I1noxXLmtZ3XDawWu8kaGtu8giHXcwL3941m8hvFZ/Wr9Yi
31
31
  JvcXJt2a4/JvwnIs2hmKuyfhZmB9HEE5wQQaCMnnC14=
32
32
  -----END CERTIFICATE-----
33
- date: 2016-08-12 00:00:00.000000000 Z
33
+ date: 2016-10-19 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: activemodel
@@ -503,6 +503,7 @@ files:
503
503
  - spec/app/models/pizza.rb
504
504
  - spec/app/models/player.rb
505
505
  - spec/app/models/post.rb
506
+ - spec/app/models/post_genre.rb
506
507
  - spec/app/models/powerup.rb
507
508
  - spec/app/models/preference.rb
508
509
  - spec/app/models/princess.rb
@@ -958,6 +959,7 @@ test_files:
958
959
  - spec/app/models/pizza.rb
959
960
  - spec/app/models/player.rb
960
961
  - spec/app/models/post.rb
962
+ - spec/app/models/post_genre.rb
961
963
  - spec/app/models/powerup.rb
962
964
  - spec/app/models/preference.rb
963
965
  - spec/app/models/princess.rb
metadata.gz.sig CHANGED
Binary file