jsonpath 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/jsonpath.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'strscan'
2
- require File.join('jsonpath', 'enumerable')
3
- require File.join('jsonpath', 'version')
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-Z]+/)
18
+ elsif token = scanner.scan(/[a-zA-Z_]+/)
19
19
  @path << "['#{token}']"
20
20
  elsif token = scanner.scan(/'(.*?)'/)
21
21
  @path << "[#{token}]"
@@ -1,3 +1,3 @@
1
1
  class JsonPath
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
@@ -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 == 28
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', 'jsonpath'))
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: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.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-09 00:00:00 -07:00
18
+ date: 2011-05-11 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- name: json
34
+ version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- name: code_stats
48
+ version_requirements: *id002
49
49
  - !ruby/object:Gem::Dependency
50
- version_requirements: &id003 !ruby/object:Gem::Requirement
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
- name: rake
62
+ version_requirements: *id003
63
63
  - !ruby/object:Gem::Dependency
64
- version_requirements: &id004 !ruby/object:Gem::Requirement
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
- name: rspec
78
+ version_requirements: *id004
79
79
  - !ruby/object:Gem::Dependency
80
- version_requirements: &id005 !ruby/object:Gem::Requirement
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
- name: bundler
94
+ version_requirements: *id005
95
95
  description: Ruby implementation of http://goessner.net/articles/JsonPath/.
96
96
  email: joshbuddy@gmail.com
97
97
  executables: []