json_dumper 0.2.0 → 0.3.0

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: b135e1234447cc632aab713807c084cfec772b35
4
- data.tar.gz: 0d442773a29f5dca71fe139517411cec7dd55036
3
+ metadata.gz: f76aca025cccb4fce9c5e54083b0f34f2d25c16b
4
+ data.tar.gz: d7992e7227a784111616b33ba9664fa4e13cd305
5
5
  SHA512:
6
- metadata.gz: b8b2319649f54af929e0e3b53a4e63cc039e271fdbd7378a0fbfd92d858aaf539943234c4e018cdd846f874aa5a7e07a5b08b4702b8982dfb67caaaf63228919
7
- data.tar.gz: e64958bdb76febf903f7f5fab21426a7fc53e207e171db53ed95ee79a31e528636684c77a52e4c4cb4a5ba368d3894e45d3c33c5df85b2846c910055ba941623
6
+ metadata.gz: 4d6a34599fce50a175b7aae277b9cde87c1129014d06ce6a49b634ba4561d70c4e6a1b39a0ec807d2bf9cc3a582a6e995bf8ed9e0148be8e1686f18eac1f73b9
7
+ data.tar.gz: 089aec36cbbe083f44cf27acb02884c706a4e8bdfdfbec3a1f4002ffed4ce4f8e5144285600f1fc26438eace64f28df874c830dee5a676b5970202d9ffb2432a
@@ -21,7 +21,12 @@ module JsonDumper
21
21
  if new_dumper.return_nils
22
22
  return nil
23
23
  end
24
- result = DumperHash.new(new_dumper.send(name, *(args[1..-1]), &block))
24
+ result = new_dumper.send(name, *(args[1..-1]), &block)
25
+ if result.respond_to?(:each) && !result.respond_to?(:each_pair)
26
+ result = DumperArray.new(result)
27
+ else
28
+ result = DumperHash.new(result)
29
+ end
25
30
  preload_method_name = "#{name}_preload"
26
31
  result.preload = instance.respond_to?(preload_method_name) ? instance.send(preload_method_name) : {}
27
32
  result
@@ -33,7 +38,13 @@ module JsonDumper
33
38
  if new_dumper.return_nils
34
39
  return nil
35
40
  end
36
- result = DumperHash.new(new_dumper.send(name, *(args[1..-1]), &block))
41
+ result = new_dumper.send(name, *(args[1..-1]), &block)
42
+ if result.respond_to?(:each) && !result.respond_to?(:each_pair)
43
+ result = DumperArray.new(result)
44
+ else
45
+ result = DumperHash.new(result)
46
+ end
47
+
37
48
  preload_method_name = "#{name}_preload"
38
49
  result.preload = instance.respond_to?(preload_method_name) ? instance.send(preload_method_name) : {}
39
50
  result
@@ -0,0 +1,9 @@
1
+ module JsonDumper
2
+ class DumperArray < Array
3
+ attr_accessor :preload
4
+
5
+ def camel
6
+ JsonDumper::KeyTransformer.keys_to_camelcase_array(self)
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module JsonDumper
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/json_dumper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "json_dumper/version"
2
2
  require "json_dumper/key_transformer"
3
3
  require "json_dumper/dumper_hash"
4
+ require "json_dumper/dumper_array"
4
5
  require "json_dumper/delayed"
5
6
  require "json_dumper/base"
6
7
  require "json_dumper/helper"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_dumper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - therusskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-14 00:00:00.000000000 Z
11
+ date: 2017-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -101,6 +101,7 @@ files:
101
101
  - lib/json_dumper.rb
102
102
  - lib/json_dumper/base.rb
103
103
  - lib/json_dumper/delayed.rb
104
+ - lib/json_dumper/dumper_array.rb
104
105
  - lib/json_dumper/dumper_hash.rb
105
106
  - lib/json_dumper/helper.rb
106
107
  - lib/json_dumper/key_transformer.rb