json-streamer 0.6.0 → 1.0.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: 4f04ab89c1174d12704fb5bf27ed2c7663ab6c95
4
- data.tar.gz: 95e508c4081e086a58a579d1147ac63d88f86d81
3
+ metadata.gz: 78f558defb01fa6c47525de0c47a96900638168d
4
+ data.tar.gz: ea21aadfedf4d8c9dddb1e8f06a0c2d9aff44be4
5
5
  SHA512:
6
- metadata.gz: 612d180722eb1b7c07b4855dc24a5a9971bb6bb8dd20b66743aa06bcf98eee39845c8e313b3f7952c582cd6915571d11a0534ce71a2cf70a1e4ab1d8c54ff1f8
7
- data.tar.gz: 48feddeccbadaa95784fe23ebee4bcbbe87dbf27b440ad7f9b10cbac230665be29e005671f304e4d7727e2e06fef6620bb47c5e5601e0af220f3f944de928f34
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
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.3
5
+ before_install: gem install bundler -v 1.14.6
data/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Json::Streamer
2
2
 
3
+ | Build status | |
4
+ | ------------ | - |
5
+ | Release | [![Build Status](https://travis-ci.org/thisismydesign/json-streamer.svg?branch=release)](https://travis-ci.org/thisismydesign/json-streamer) [![Coverage Status](https://coveralls.io/repos/github/thisismydesign/json-streamer/badge.svg?branch=release)](https://coveralls.io/github/thisismydesign/json-streamer?branch=release) [![Gem Version](https://badge.fury.io/rb/json-streamer.svg)](https://badge.fury.io/rb/json-streamer) |
6
+ | Development | [![Build Status](https://travis-ci.org/thisismydesign/json-streamer.svg?branch=master)](https://travis-ci.org/thisismydesign/json-streamer) [![Coverage Status](https://coveralls.io/repos/github/thisismydesign/json-streamer/badge.svg?branch=master)](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
- task :default => :spec
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]
@@ -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
- @aggregator[@current_nesting_level] << v
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
@@ -1,5 +1,5 @@
1
1
  module Json
2
2
  module Streamer
3
- VERSION = "0.6.0"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
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.6.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-04-25 00:00:00.000000000 Z
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