json-stream-path 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,28 @@
1
+ {
2
+ "root":{
3
+ "one":"one-key",
4
+ "two":["two1-key", "two2-key"],
5
+ "three":{
6
+ "three1":"three1-key",
7
+ "three2":"three2-key"
8
+ },
9
+ "four":[
10
+ {
11
+ "four-hash":{
12
+ "four1":"four1-key"
13
+ }
14
+ },
15
+ {
16
+ "four-array":["four1", "four2"]
17
+ },
18
+ {
19
+ "four-string":"four-string"
20
+ },
21
+ {
22
+ "four-number":12.1
23
+ }
24
+
25
+ ]
26
+ },
27
+ "sibling":"sibling-key"
28
+ }
@@ -0,0 +1,114 @@
1
+ require 'json/stream'
2
+ require 'test/unit'
3
+ require 'pry'
4
+
5
+ class StreamJPathTest < Test::Unit::TestCase
6
+
7
+ def setup
8
+ @hash = {
9
+ "root" => {
10
+ "one" => "one-key",
11
+ "two" => ["two1-key", "two2-key"],
12
+ "three" => {
13
+ "three1" => "three1-key",
14
+ "three2" => "three2-key"
15
+ },
16
+ "four" => [
17
+ {
18
+ "four-hash" => {
19
+ "four1" => "four1-key"
20
+ }
21
+ },
22
+ {
23
+ "four-array" => ["four1", "four2"]
24
+ },
25
+ {
26
+ "four-string" => "four-string"
27
+ },
28
+ {
29
+ "four-number" => 12.1
30
+ }
31
+ ]
32
+ },
33
+ "sibling" => "sibling-key"
34
+ }
35
+ end
36
+
37
+ #def test_parsing_without_jpath
38
+ # stream = File.open('test/stream_example.json')
39
+ # @parser = JSON::Stream::Parser.new
40
+ # result = @parser.parse(stream)
41
+ # assert_equal(@hash, result)
42
+ #end
43
+ #
44
+ #def test_parsing_with_empty_jpath
45
+ # stream = File.open('test/stream_example.json')
46
+ # @parser = JSON::Stream::Parser.new
47
+ # result = @parser.parse(stream)
48
+ # assert_equal(@hash, result)
49
+ #end
50
+ #
51
+ #def test_parsing_with_empty_jpath
52
+ # stream = File.open('test/stream_example.json')
53
+ # @parser = JSON::Stream::Parser.new
54
+ # result = @parser.parse(stream, '')
55
+ # assert_equal(@hash, result)
56
+ #end
57
+ #
58
+ #def test_parsing_whole
59
+ # stream = File.open('test/stream_example.json')
60
+ # @parser = JSON::Stream::Parser.new
61
+ # result = @parser.parse(stream, '/')
62
+ # assert_equal(@hash, result)
63
+ #end
64
+ #
65
+ #def test_parsing_root
66
+ # stream = File.open('test/stream_example.json')
67
+ # @parser = JSON::Stream::Parser.new
68
+ # result = @parser.parse(stream, '/root')
69
+ # assert_equal(@hash['root'], result)
70
+ #end
71
+ #
72
+ #def test_parsing_root_one
73
+ # stream = File.open('test/stream_example.json')
74
+ # @parser = JSON::Stream::Parser.new
75
+ # result = @parser.parse(stream, '/root/one')
76
+ # assert_equal(@hash['root']['one'], result)
77
+ #end
78
+ #
79
+ #def test_parsing_root_two
80
+ # stream = File.open('test/stream_example.json')
81
+ # @parser = JSON::Stream::Parser.new
82
+ # result = @parser.parse(stream, '/root/two')
83
+ # assert_equal(@hash['root']['two'], result)
84
+ #end
85
+
86
+ def test_parsing_root_three
87
+ stream = File.open('test/stream_example.json')
88
+ @parser = JSON::Stream::Parser.new
89
+ result = @parser.parse(stream, '/root/three')
90
+ assert_equal(@hash['root']['three'], result)
91
+ end
92
+
93
+ #def test_parsing_root_three1
94
+ # stream = File.open('test/stream_example.json')
95
+ # @parser = JSON::Stream::Parser.new
96
+ # result = @parser.parse(stream, '/root/three/three1')
97
+ # assert_equal(@hash['root']['three']['three1'], result)
98
+ #end
99
+ #
100
+ #def test_parsing_root_three2
101
+ # stream = File.open('test/stream_example.json')
102
+ # @parser = JSON::Stream::Parser.new
103
+ # hash = @parser.parse(stream, '/root/three/three2')
104
+ # assert_equal(@hash['root']['three']['three2'], hash)
105
+ #end
106
+ #
107
+ #def test_parsing_root_
108
+ # stream = File.open('test/stream_example.json')
109
+ # @parser = JSON::Stream::Parser.new
110
+ # hash = @parser.parse(stream, '/sibling')
111
+ # assert_equal(@hash['sibling'], hash)
112
+ #end
113
+
114
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: json-stream-path
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Manojs
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-11-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: pry
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Gem desc
63
+ email:
64
+ - manojs.nitt@gmail.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .gitignore
70
+ - .idea/.name
71
+ - .idea/.rakeTasks
72
+ - .idea/encodings.xml
73
+ - .idea/json-stream-path.iml
74
+ - .idea/misc.xml
75
+ - .idea/modules.xml
76
+ - .idea/scopes/scope_settings.xml
77
+ - .idea/vcs.xml
78
+ - .idea/workspace.xml
79
+ - Gemfile
80
+ - LICENSE
81
+ - README.md
82
+ - Rakefile
83
+ - json-stream-path.gemspec
84
+ - lib/json/stream.rb
85
+ - lib/json/stream/buffer.rb
86
+ - lib/json/stream/builder.rb
87
+ - lib/json/stream/j_path_tree.rb
88
+ - lib/json/stream/parser.rb
89
+ - lib/json/stream/path/version.rb
90
+ - lib/json/stream/version.rb
91
+ - test/buffer_test.rb
92
+ - test/builder_test.rb
93
+ - test/j_path_tree_test.rb
94
+ - test/parser_test.rb
95
+ - test/stream_example.json
96
+ - test/stream_j_path_test.rb
97
+ homepage: https://github.com/bethink/json-stream-path
98
+ licenses:
99
+ - MIT
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ! '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirements: []
117
+ rubyforge_project:
118
+ rubygems_version: 1.8.24
119
+ signing_key:
120
+ specification_version: 3
121
+ summary: Gem summary
122
+ test_files:
123
+ - test/buffer_test.rb
124
+ - test/builder_test.rb
125
+ - test/j_path_tree_test.rb
126
+ - test/parser_test.rb
127
+ - test/stream_example.json
128
+ - test/stream_j_path_test.rb