praxis-mapper 3.2 → 3.3

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: 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