json-streamer 1.2.1 → 1.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: a6f7f1c4fd17162a3834262b95b79828edf68ff7
4
- data.tar.gz: 8cd559f9fe0076faae7e2fd1cc0bc91d496a22bc
3
+ metadata.gz: aac1b068e94999ad0ef0f317d819273b14069fdf
4
+ data.tar.gz: e9245d59c50a842953d63bfedb3aed2859b15c75
5
5
  SHA512:
6
- metadata.gz: ac5ea81b891cbaaa218ba528694e0f6b9bd0a5d566630bbe962776d484f02f0d96d766375437f3f10d5aae661fd14fb65f4e7dcd4c10f759a7baffa9b83f89f3
7
- data.tar.gz: b04d3d5a0c5266aa26393cd2194044ee5101bde08dd2e34fe4d3f02c26281f24141ddb9bab5a8dfdb6305dce820d93bd6257cda22eecee105387b69be034771a
6
+ metadata.gz: 93f9766a9086fb81f43e96f3d2c267b434148b9bcdb3bfdef2595a187507f056494b9a00955cc29a49cfc6f56883a7b04cb5d601f66661e9366203b576c71b9f
7
+ data.tar.gz: b5c174919a39b4b8d03ee05a6888e0b6cf134335bf3bf2ccdeaebda88fa0a1eeb8eae99875ba8e72d7e68f7b80f2e8505030570a92aa668a1912c74ee9370210
data/README.md CHANGED
@@ -49,7 +49,7 @@ Or install it yourself as:
49
49
  require 'json/streamer'
50
50
  ```
51
51
 
52
- ### v1.2 API
52
+ ### v1.2 (and above) API
53
53
 
54
54
  Check the unit tests for more examples ([spec/streamer_spec.rb](spec/json/streamer/json_streamer_spec.rb)).
55
55
 
@@ -137,6 +137,28 @@ Output:
137
137
  {}
138
138
  ```
139
139
 
140
+ #### Symbolize keys
141
+
142
+ Since [v1.3.0](https://github.com/thisismydesign/json-streamer/releases/tag/v1.3.0)
143
+
144
+ ```ruby
145
+ streamer.get(nesting_level:0, symbolize_keys: true) do |object|
146
+ p object
147
+ end
148
+ ```
149
+
150
+ Input:
151
+ ```json
152
+ {
153
+ "obj1" : {"key" : "value"}
154
+ }
155
+ ```
156
+
157
+ Output:
158
+ ```json
159
+ {:obj1=>{:key=>"value"}}
160
+ ```
161
+
140
162
  #### Passing IO later (EventMachine-style)
141
163
 
142
164
  ```ruby
@@ -27,10 +27,11 @@ module Json
27
27
  end
28
28
 
29
29
  # Callbacks containing `yield` have to be defined in the method called via block otherwise yield won't work
30
- def get(nesting_level: -1, key: nil, yield_values: true)
30
+ def get(nesting_level: -1, key: nil, yield_values: true, symbolize_keys: false)
31
31
  @yield_level = nesting_level
32
32
  @yield_key = key
33
33
  @yield_values = yield_values
34
+ @symbolize_keys = symbolize_keys
34
35
 
35
36
  @parser.value do |v|
36
37
  value(v) { |desired_object| yield desired_object }
@@ -56,7 +57,7 @@ module Json
56
57
  end
57
58
 
58
59
  def key(k)
59
- @current_key = k
60
+ @current_key = @symbolize_keys ? k.to_sym : k
60
61
  end
61
62
 
62
63
  def value(value)
@@ -1,5 +1,5 @@
1
1
  module Json
2
2
  module Streamer
3
- VERSION = "1.2.1"
3
+ VERSION = "1.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-streamer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thisismydesign