praxis-mapper 3.2 → 3.3

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
2
  SHA1:
3
- metadata.gz: c0f5ae2201ca9a681d3f65c4ea8a51d3523e1620
4
- data.tar.gz: 5fa2fc72ff6c38fac99fa60a4fd42d3bcadc7aa6
3
+ metadata.gz: 6846f3a009fa64333abe3cb2ec246739bd51eac6
4
+ data.tar.gz: 9816dfbed93468cab708a9d7e62184d0ec8dd50b
5
5
  SHA512:
6
- metadata.gz: 2add48d3bca8c0ce48ee4bf2d66ba02582f0c781bcb45e792af98b500eb0f368b7e6e93fd64c0e1a211fe2e1a02355c1b190130cd2fd750409e44c0a79197b1d
7
- data.tar.gz: 13e3428c8129be0d9eb2a3c9c3269ab50cd10545027092e971fcdbc07e6c0f3af67fa51d277c4abfca56a7e19a88ac9b09a63c292a116a64e5a107f300be4bca
6
+ metadata.gz: 4f60333005ce4fbe58804f91b3641d7e7dee4f82cabb0ae57b1dd910f6f3364a04ab1c2145764ec94c17d75621800be1f140050507dbb8040b4bca3758ece56d
7
+ data.tar.gz: de0d8e4d594f3059ff204d5b808454ae9c53df667cf2f2b4bb22be58235a7019a687daf910f36cbd5ed7c0bec54bd1f152e350540cd6c7a3816d6cefd843eb1c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # praxis-mapper changelog
2
2
 
3
+ ## next
4
+
5
+ ## 3.3.0
6
+
7
+ * Tightened up handling of missing records in `IdentityMap#all` and `Resource.wrap`. They now will never return `nil` values.
8
+
9
+
3
10
  ## 3.2.0
4
11
 
5
12
  * Add `Resource.decorate` for extending/overriding methods on Resource associations. See `PersonResource` in [spec_resources.rb](spec/support/spec_resources.rb) for usage.
@@ -336,7 +336,7 @@ module Praxis::Mapper
336
336
  if @row_keys[model].has_key?(key)
337
337
  res = row_by_key(model, key, value)
338
338
  if res
339
- [row_by_key(model, key, value)]
339
+ [res]
340
340
  else
341
341
  []
342
342
  end
@@ -347,7 +347,7 @@ module Praxis::Mapper
347
347
  if @row_keys[model].has_key?(key)
348
348
  values.collect do |value|
349
349
  row_by_key(model, key, value)
350
- end
350
+ end.compact
351
351
  else
352
352
  values.each_with_object(Array.new) do |value, results|
353
353
  results.push *index(model, key, value)
@@ -142,7 +142,7 @@ module Praxis::Mapper
142
142
  when nil
143
143
  return []
144
144
  when Enumerable
145
- return records.collect { |record| self.for_record(record) }
145
+ return records.compact.collect { |record| self.for_record(record) }
146
146
  else
147
147
  return self.for_record(records)
148
148
  end
@@ -1,5 +1,5 @@
1
1
  module Praxis
2
2
  module Mapper
3
- VERSION = "3.2"
3
+ VERSION = "3.3"
4
4
  end
5
5
  end
@@ -7,7 +7,6 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "praxis-mapper"
8
8
  spec.version = Praxis::Mapper::VERSION
9
9
  spec.authors = ["Josep M. Blanquer","Dane Jensen"]
10
- spec.date = "2014-08-18"
11
10
  spec.summary = %q{A multi-datastore library designed for efficiency in loading large datasets.}
12
11
  spec.email = ["blanquer@gmail.com","dane.jensen@gmail.com"]
13
12
 
@@ -774,6 +774,13 @@ describe Praxis::Mapper::IdentityMap do
774
774
  identity_map.all(SimpleModel, :id => [4]).should =~ []
775
775
  end
776
776
 
777
+ it 'does not return nil for records that were not found' do
778
+ results = identity_map.all(SimpleModel, :id => [1,4])
779
+ results.should have(1).item
780
+ results.should eq(identity_map.all(SimpleModel, :id => [1]))
781
+ end
782
+
783
+
777
784
  end
778
785
 
779
786
  context '#row_by_key' do
@@ -182,6 +182,12 @@ describe Praxis::Mapper::Resource do
182
182
  wrapped_obj.length.should be(0)
183
183
  end
184
184
 
185
+ it 'works array with nil member, returning only existing records' do
186
+ wrapped_set = SimpleResource.wrap([nil, record])
187
+ wrapped_set.should be_kind_of(Array)
188
+ wrapped_set.length.should be(1)
189
+ end
190
+
185
191
  it 'works regardless of the resource class used' do
186
192
  SimpleResource.wrap(record).should be(OtherResource.wrap(record))
187
193
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: praxis-mapper
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.2'
4
+ version: '3.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep M. Blanquer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-18 00:00:00.000000000 Z
12
+ date: 2015-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: randexp