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 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: []