ruby_mongo_utils 0.0.8 → 0.0.9

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.
@@ -8,11 +8,15 @@ module MongoUtils
8
8
  end
9
9
 
10
10
  def plain_value_blank?(value)
11
+ if value.is_a?(Hash)
12
+ value = value.dup
13
+ value.reject! { |_, v| plain_value_blank?(v) }
14
+ end
11
15
  value.blank? || value == 0
12
16
  end
13
17
 
14
18
  def blank_and_was_blank_value?(attribute, value)
15
- blank_value?(value) && respond_to?("#{attribute}_was") && blank_value?(send("#{attribute}_was"))
19
+ plain_value_blank?(value) && respond_to?("#{attribute}_was") && blank_value?(send("#{attribute}_was"))
16
20
  end
17
21
 
18
22
  def self.included(base)
@@ -1,3 +1,3 @@
1
1
  module MongoUtils
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
@@ -223,28 +223,6 @@ describe MongoUtils::Stripable do
223
223
  page.keys.should include 'likes'
224
224
  end
225
225
 
226
- it 'should update an empty value to another and stript empties in higher level hashes' do
227
- page = Page.first
228
- page.likes[:lifetime] = { user777: 77, user555: 0 }
229
- page.save!
230
-
231
- page.likes.should eq({ lifetime: { user777: 77 } })
232
-
233
- page = Page.collection.find.first
234
- page.keys.should include 'likes'
235
- end
236
-
237
- it 'should update an empty value to another and stript empties in higher level hashes' do
238
- page = Page.first
239
- page.likes[:lifetime] = { user777: 77, user555: 0, total: { by_user: [] } }
240
- page.save!
241
-
242
- page.likes.should eq({ lifetime: { user777: 77 } })
243
-
244
- page = Page.collection.find.first
245
- page.keys.should include 'likes'
246
- end
247
-
248
226
  context 'after update' do
249
227
  before do
250
228
  page = Page.first
@@ -259,7 +237,7 @@ describe MongoUtils::Stripable do
259
237
 
260
238
  page = Page.first
261
239
  page.likes['totals'].should eq 55
262
- page.likes['lifetime'].should eq({ 'user777' => 77 })
240
+ page.likes['lifetime'].should eq({ 'user777' => 77 , 'user555' => 0, 'total' => { 'by_user' => [] } })
263
241
  end
264
242
 
265
243
  it 'should be able to add another key to the second level hash' do
@@ -272,13 +250,13 @@ describe MongoUtils::Stripable do
272
250
  page.likes['lifetime']['user777'].should eq 77
273
251
  end
274
252
 
275
- it 'should be able to make existing key inside a hash to empty value' do
253
+ it 'should be able to make existing key inside a hash to an empty value' do
276
254
  page = Page.first
277
255
  page.likes['lifetime']['user777'] = 0
278
256
  page.save!
279
257
 
280
258
  page = Page.first
281
- page.likes['lifetime'].should be_blank
259
+ page.likes['lifetime']['user777'].should eq 0
282
260
  end
283
261
 
284
262
  it 'should be able to make existing key inside a hash to empty value and set another value' do
@@ -288,7 +266,7 @@ describe MongoUtils::Stripable do
288
266
  page.save!
289
267
 
290
268
  page = Page.first
291
- page.likes['lifetime'].should eq({ 'user555' => 55 })
269
+ page.likes['lifetime'].should eq({ 'user777' => 0, 'user555' => 55, 'total' => { 'by_user' => [] } })
292
270
  end
293
271
  end
294
272
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_mongo_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-02 00:00:00.000000000 Z
12
+ date: 2013-05-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid