json_dumper 0.2.0 → 0.3.0

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