pump 0.6.3 → 0.6.4

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: b23d242fff172d8de112af6c2fc6f326e101bd14
4
- data.tar.gz: 4e369b0d6f692526571a487c1e692199b21d1efb
3
+ metadata.gz: 27f8a3e058da84aed35138707b6be1836abb45e8
4
+ data.tar.gz: 7d4e25c6424008b13f67aef733eb6bddbc586afd
5
5
  SHA512:
6
- metadata.gz: 3593cfcda6c0a33bd2f1cdf0d7010fb6f1b627a11a33c675fa2ab0854771e8b3cd109137d26bb8cf557e41ea21345b4c2b018f0b6a0b3105fa73bfc1c16917e3
7
- data.tar.gz: 6c366d3a85852a28c5bb536bd2daed8eaf23f1e2d14972e73fd3c951c00d0dd8dd1895450b65a21d6ab33d1d2ad13529fa0ebc5e949616c7e42969f4019d3c24
6
+ metadata.gz: dbede9b7e563335f30ed7682644ce43eb974dc21ce2bae10257d44b9520cd29a63523f3b2e87f9b61bc9a662d3ec8bf83ec7d53d8da08a8e0c5b7c86f61f368e
7
+ data.tar.gz: 32020a5f3bc48ca51f9cb1e2b6872547e8dbfff045607549ce431076a7d11d503e1369714d5b99f7f6eb4a285c95df495147002265b3a6036ffaccbfd41e393d
data/CHANGES.md CHANGED
@@ -1,8 +1,14 @@
1
1
  ### dev
2
2
 
3
- [full changelog](http://github.com/yolk/pump/compare/v0.6.3...master)
3
+ [full changelog](http://github.com/yolk/pump/compare/v0.6.4...master)
4
4
 
5
- ### 0.6.3 / 2013-07-26
5
+ ### 0.6.4 / 2013-11-08
6
+
7
+ [full changelog](http://github.com/yolk/valvat/compare/v0.6.3...v0.6.4)
8
+
9
+ * :fields option is now supported on array in JSON and XML
10
+
11
+ ### 0.6.3 / 2013-11-08
6
12
 
7
13
  [full changelog](http://github.com/yolk/valvat/compare/v0.6.2...v0.6.3)
8
14
 
data/lib/pump/encoder.rb CHANGED
@@ -56,7 +56,11 @@ module Pump
56
56
  object = object.to_a if defined?(ActiveRecord::Relation) && object.is_a?(ActiveRecord::Relation)
57
57
  fields_to_hash(options)
58
58
  if object.is_a?(Array)
59
- encode_array(object, options)
59
+ if options[:fields]
60
+ encode_partial_array(object, options)
61
+ else
62
+ encode_array(object, options)
63
+ end
60
64
  elsif options[:fields]
61
65
  encode_partial_single(object, options)
62
66
  else
data/lib/pump/json.rb CHANGED
@@ -47,6 +47,20 @@ module Pump
47
47
  end
48
48
  end, OJ_OPTIONS)
49
49
  end
50
+
51
+ def encode_partial_array(objects, options)
52
+ Oj.dump(if options[:exclude_root_in_json]
53
+ objects.map do |object|
54
+ #{partial_main}
55
+ json
56
+ end
57
+ else
58
+ objects.map do |object|
59
+ #{partial_main}
60
+ { :'#{format_name(root_name)}' => json }
61
+ end
62
+ end, OJ_OPTIONS)
63
+ end
50
64
  EOV
51
65
  end
52
66
 
data/lib/pump/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pump
2
- VERSION = "0.6.3"
2
+ VERSION = "0.6.4"
3
3
  end
data/lib/pump/xml.rb CHANGED
@@ -20,6 +20,11 @@ module Pump
20
20
  field_hash = options[:fields]
21
21
  "#{Tag.new(root_name, {}, sub_tags(true), tag_options)}"
22
22
  end
23
+
24
+ def encode_partial_array(objects, options)
25
+ field_hash = options[:fields]
26
+ "#{TagArray.new(root_name, {}, sub_tags(true), tag_options)}"
27
+ end
23
28
  EOV
24
29
  end
25
30
 
@@ -291,6 +291,21 @@ describe Pump::Json do
291
291
  )
292
292
  end
293
293
  end
294
+
295
+ context "with array of objects" do
296
+ let(:people) {
297
+ [
298
+ Struct.new(:name, :age, :children).new('Gustav', 2),
299
+ Struct.new(:name, :age, :children).new('Mary', 1)
300
+ ]
301
+ }
302
+
303
+ let(:json) { Pump::Json.new('person', [{:name => :name}, {:age => :age}]) }
304
+
305
+ it "returns only specified fields" do
306
+ json.encode(people, :fields => ['name']).should eql("[{\"person\":{\"name\":\"Gustav\"}},{\"person\":{\"name\":\"Mary\"}}]")
307
+ end
308
+ end
294
309
  end
295
310
  end
296
311
  end
@@ -378,6 +378,21 @@ describe Pump::Xml do
378
378
  )
379
379
  end
380
380
  end
381
+
382
+ context "with array of objects" do
383
+ let(:people) {
384
+ [
385
+ Struct.new(:name, :age, :children).new('Gustav', 2),
386
+ Struct.new(:name, :age, :children).new('Mary', 1)
387
+ ]
388
+ }
389
+
390
+ let(:xml) { Pump::Xml.new('person', [{:name => :name}, {:age => :age}]) }
391
+
392
+ it "returns only specified fields" do
393
+ xml.encode(people, :fields => ['name']).should eql("#{XML_INSTRUCT}<people type=\"array\">\n <person>\n <name>Gustav</name>\n </person>\n <person>\n <name>Mary</name>\n </person>\n</people>\n")
394
+ end
395
+ end
381
396
  end
382
397
  end
383
398
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Munz