json-streamer 0.6.0 → 1.0.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 +4 -4
- data/.gitmodules +3 -3
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/README.md +5 -0
- data/Rakefile +10 -1
- data/json-streamer.gemspec +3 -0
- data/lib/json/streamer/json_streamer.rb +7 -4
- data/lib/json/streamer/version.rb +1 -1
- metadata +46 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78f558defb01fa6c47525de0c47a96900638168d
|
4
|
+
data.tar.gz: ea21aadfedf4d8c9dddb1e8f06a0c2d9aff44be4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a595fd7837371e1555180e17beaf42e2bcac4dd06aa12973393431dd234d4eb71f2ba6ffa6df6b965a00e40837295b33409b9d3840cb23d32039e658fd6f94b1
|
7
|
+
data.tar.gz: 144ef35ae0f18f2fb51099e735f87dc39a17a1da734f35575ef27fd3dff0f01e7054f765a5b852aca9f1176dc65e9ca3a6210f89eb8a1c47270cc9df4838d645
|
data/.gitmodules
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
[submodule "ruby-devenv"]
|
2
|
-
path = ruby-devenv
|
3
|
-
url = https://github.com/thisismydesign/ruby-devenv
|
1
|
+
[submodule "ruby-devenv"]
|
2
|
+
path = ruby-devenv
|
3
|
+
url = https://github.com/thisismydesign/ruby-devenv
|
data/.rspec
ADDED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Json::Streamer
|
2
2
|
|
3
|
+
| Build status | |
|
4
|
+
| ------------ | - |
|
5
|
+
| Release | [](https://travis-ci.org/thisismydesign/json-streamer) [](https://coveralls.io/github/thisismydesign/json-streamer?branch=release) [](https://badge.fury.io/rb/json-streamer) |
|
6
|
+
| Development | [](https://travis-ci.org/thisismydesign/json-streamer) [](https://coveralls.io/github/thisismydesign/json-streamer?branch=master) |
|
7
|
+
|
3
8
|
Ruby utility that supports JSON streaming allowing you to get data based on various criteria (key, nesting level, etc).
|
4
9
|
|
5
10
|
*If you've tried JSON streaming with other Ruby libraries before (e.g. [JSON::Stream](https://github.com/dgraham/json-stream), [Yajl::FFI](https://github.com/dgraham/yajl-ffi)):*
|
data/Rakefile
CHANGED
@@ -1,2 +1,11 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
-
|
2
|
+
require "rspec/core/rake_task"
|
3
|
+
|
4
|
+
RSpec::Core::RakeTask.new(:spec)
|
5
|
+
|
6
|
+
desc "Check if source can be required locally"
|
7
|
+
task :require do
|
8
|
+
sh "ruby -e \"require '#{File.dirname __FILE__}/lib/json/streamer'\""
|
9
|
+
end
|
10
|
+
|
11
|
+
task :default => [:require, :spec]
|
data/json-streamer.gemspec
CHANGED
@@ -24,7 +24,10 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.14"
|
25
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.0"
|
27
|
+
spec.add_development_dependency "coveralls"
|
27
28
|
spec.add_development_dependency "ndhash"
|
29
|
+
spec.add_development_dependency "sys-proctable"
|
30
|
+
spec.add_development_dependency "get_process_mem"
|
28
31
|
|
29
32
|
spec.add_dependency "json-stream"
|
30
33
|
end
|
@@ -20,7 +20,6 @@ module Json
|
|
20
20
|
@parser.start_object {start_object}
|
21
21
|
@parser.start_array {start_array}
|
22
22
|
@parser.key {|k| key(k)}
|
23
|
-
|
24
23
|
end
|
25
24
|
|
26
25
|
# Callbacks containing `yield` have to be defined in the method called via block otherwise yield won't work
|
@@ -30,7 +29,11 @@ module Json
|
|
30
29
|
|
31
30
|
@parser.value do |v|
|
32
31
|
if @aggregator[@current_nesting_level].kind_of? Array
|
33
|
-
|
32
|
+
if yield_values and yield_value?(yield_nesting_level)
|
33
|
+
yield v
|
34
|
+
else
|
35
|
+
@aggregator[@current_nesting_level] << v
|
36
|
+
end
|
34
37
|
else
|
35
38
|
@aggregator[@current_nesting_level][@current_key] = v
|
36
39
|
if yield_values and yield_value?(yield_nesting_level, wanted_key)
|
@@ -70,8 +73,8 @@ module Json
|
|
70
73
|
@current_nesting_level.eql? yield_nesting_level or (not wanted_key.nil? and wanted_key == @temp_aggregator_keys[@current_nesting_level-1])
|
71
74
|
end
|
72
75
|
|
73
|
-
def yield_value?(yield_nesting_level, wanted_key)
|
74
|
-
(@current_nesting_level + 1).eql? yield_nesting_level or wanted_key == @current_key
|
76
|
+
def yield_value?(yield_nesting_level, wanted_key = nil)
|
77
|
+
(@current_nesting_level + 1).eql? yield_nesting_level or (not wanted_key.nil? and wanted_key == @current_key)
|
75
78
|
end
|
76
79
|
|
77
80
|
def start_object
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json-streamer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thisismydesign
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: coveralls
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: ndhash
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,34 @@ dependencies:
|
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sys-proctable
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: get_process_mem
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: json-stream
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,6 +131,8 @@ extra_rdoc_files: []
|
|
89
131
|
files:
|
90
132
|
- ".gitignore"
|
91
133
|
- ".gitmodules"
|
134
|
+
- ".rspec"
|
135
|
+
- ".travis.yml"
|
92
136
|
- CODE_OF_CONDUCT.md
|
93
137
|
- Gemfile
|
94
138
|
- LICENSE.txt
|