jsonpath 0.2.2 → 0.2.3
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.
- data/lib/jsonpath.rb +3 -3
- data/lib/jsonpath/version.rb +1 -1
- data/spec/jsonpath_spec.rb +7 -2
- data/spec/spec_helper.rb +1 -1
- metadata +24 -24
data/lib/jsonpath.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'strscan'
|
2
|
-
require
|
3
|
-
require
|
2
|
+
require 'jsonpath/enumerable'
|
3
|
+
require 'jsonpath/version'
|
4
4
|
|
5
5
|
class JsonPath
|
6
6
|
|
@@ -15,7 +15,7 @@ class JsonPath
|
|
15
15
|
@path << token
|
16
16
|
elsif token = scanner.scan(/@/)
|
17
17
|
@path << token
|
18
|
-
elsif token = scanner.scan(/[a-zA-
|
18
|
+
elsif token = scanner.scan(/[a-zA-Z_]+/)
|
19
19
|
@path << "['#{token}']"
|
20
20
|
elsif token = scanner.scan(/'(.*?)'/)
|
21
21
|
@path << "[#{token}]"
|
data/lib/jsonpath/version.rb
CHANGED
data/spec/jsonpath_spec.rb
CHANGED
@@ -30,7 +30,8 @@ describe "JsonPath" do
|
|
30
30
|
],
|
31
31
|
"bicycle"=> {
|
32
32
|
"color"=> "red",
|
33
|
-
"price"=> 19.95
|
33
|
+
"price"=> 19.95,
|
34
|
+
"catalogue_number" => 12345,
|
34
35
|
}
|
35
36
|
}
|
36
37
|
}
|
@@ -76,13 +77,17 @@ describe "JsonPath" do
|
|
76
77
|
JsonPath.new("$..book[?(@['isbn'])]").on(@object).to_a.should == [@object['store']['book'][2], @object['store']['book'][3]]
|
77
78
|
JsonPath.new("$..book[?(@['price'] < 10)]").on(@object).to_a.should == [@object['store']['book'][0], @object['store']['book'][2]]
|
78
79
|
end
|
80
|
+
|
81
|
+
it "should recognize paths with underscores" do
|
82
|
+
JsonPath.new('$.store.bicycle.catalogue_number').on(@object).to_a.should == [@object['store']['bicycle']['catalogue_number']]
|
83
|
+
end
|
79
84
|
|
80
85
|
it "should support eval'd array indicies" do
|
81
86
|
JsonPath.new('$..book[(@.length-2)]').on(@object).to_a.should == [@object['store']['book'][2]]
|
82
87
|
end
|
83
88
|
|
84
89
|
it "should correct retrieve the right number of all nodes" do
|
85
|
-
JsonPath.new('$..*').on(@object).to_a.size.should ==
|
90
|
+
JsonPath.new('$..*').on(@object).to_a.size.should == 29
|
86
91
|
end
|
87
92
|
|
88
93
|
it "should deal with a space in the key name" do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
$LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'
|
1
|
+
$LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
2
|
require 'jsonpath'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsonpath
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Joshua Hull
|
@@ -15,11 +15,13 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-11 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
22
|
+
name: json
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
25
|
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
@@ -28,12 +30,12 @@ dependencies:
|
|
28
30
|
segments:
|
29
31
|
- 0
|
30
32
|
version: "0"
|
31
|
-
requirement: *id001
|
32
|
-
prerelease: false
|
33
33
|
type: :runtime
|
34
|
-
|
34
|
+
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
|
36
|
+
name: code_stats
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
39
|
none: false
|
38
40
|
requirements:
|
39
41
|
- - ">="
|
@@ -42,12 +44,12 @@ dependencies:
|
|
42
44
|
segments:
|
43
45
|
- 0
|
44
46
|
version: "0"
|
45
|
-
requirement: *id002
|
46
|
-
prerelease: false
|
47
47
|
type: :development
|
48
|
-
|
48
|
+
version_requirements: *id002
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
|
50
|
+
name: rake
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
51
53
|
none: false
|
52
54
|
requirements:
|
53
55
|
- - ">="
|
@@ -56,12 +58,12 @@ dependencies:
|
|
56
58
|
segments:
|
57
59
|
- 0
|
58
60
|
version: "0"
|
59
|
-
requirement: *id003
|
60
|
-
prerelease: false
|
61
61
|
type: :development
|
62
|
-
|
62
|
+
version_requirements: *id003
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
|
64
|
+
name: rspec
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
65
67
|
none: false
|
66
68
|
requirements:
|
67
69
|
- - ~>
|
@@ -72,12 +74,12 @@ dependencies:
|
|
72
74
|
- 5
|
73
75
|
- 0
|
74
76
|
version: 2.5.0
|
75
|
-
requirement: *id004
|
76
|
-
prerelease: false
|
77
77
|
type: :development
|
78
|
-
|
78
|
+
version_requirements: *id004
|
79
79
|
- !ruby/object:Gem::Dependency
|
80
|
-
|
80
|
+
name: bundler
|
81
|
+
prerelease: false
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
81
83
|
none: false
|
82
84
|
requirements:
|
83
85
|
- - ~>
|
@@ -88,10 +90,8 @@ dependencies:
|
|
88
90
|
- 0
|
89
91
|
- 0
|
90
92
|
version: 1.0.0
|
91
|
-
requirement: *id005
|
92
|
-
prerelease: false
|
93
93
|
type: :development
|
94
|
-
|
94
|
+
version_requirements: *id005
|
95
95
|
description: Ruby implementation of http://goessner.net/articles/JsonPath/.
|
96
96
|
email: joshbuddy@gmail.com
|
97
97
|
executables: []
|