json_select 0.1.3 → 0.1.4

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.
Files changed (95) hide show
  1. data/.gitmodules +3 -0
  2. data/.travis.yml +1 -1
  3. data/Gemfile +1 -0
  4. data/README.md +52 -1
  5. data/Rakefile +12 -1
  6. data/lib/json_select/helpers/depth.rb +6 -2
  7. data/lib/json_select/helpers/key.rb +6 -2
  8. data/lib/json_select/helpers/position.rb +15 -7
  9. data/lib/json_select/helpers/size.rb +14 -6
  10. data/lib/json_select/helpers/type.rb +8 -4
  11. data/lib/json_select/selector.rb +47 -11
  12. data/lib/json_select/selector_parser.rb +179 -44
  13. data/lib/json_select/selector_parser.tt +9 -2
  14. data/lib/json_select/version.rb +1 -1
  15. data/spec/conformance_spec.rb +94 -38
  16. data/spec/fixtures/{basic_children.selector → parser/level_1/basic_children.output} +0 -0
  17. data/spec/fixtures/parser/level_1/basic_children.selector +1 -0
  18. data/spec/fixtures/{basic_combination.selector → parser/level_1/basic_combination.output} +0 -0
  19. data/spec/fixtures/parser/level_1/basic_combination.selector +1 -0
  20. data/spec/fixtures/parser/level_1/basic_first-child.output +1 -0
  21. data/spec/fixtures/{basic_first-child.selector → parser/level_1/basic_first-child.selector} +0 -0
  22. data/spec/fixtures/parser/level_1/basic_grouping.output +1 -0
  23. data/spec/fixtures/{basic_grouping.selector → parser/level_1/basic_grouping.selector} +0 -0
  24. data/spec/fixtures/parser/level_1/basic_id.output +1 -0
  25. data/spec/fixtures/{basic_id.selector → parser/level_1/basic_id.selector} +0 -0
  26. data/spec/fixtures/parser/level_1/basic_id_multiple.output +1 -0
  27. data/spec/fixtures/{basic_id_multiple.selector → parser/level_1/basic_id_multiple.selector} +0 -0
  28. data/spec/fixtures/parser/level_1/basic_id_quotes.output +1 -0
  29. data/spec/fixtures/{basic_id_quotes.selector → parser/level_1/basic_id_quotes.selector} +0 -0
  30. data/spec/fixtures/parser/level_1/basic_id_with_type.output +1 -0
  31. data/spec/fixtures/{basic_id_with_type.selector → parser/level_1/basic_id_with_type.selector} +0 -0
  32. data/spec/fixtures/parser/level_1/basic_last-child.output +1 -0
  33. data/spec/fixtures/{basic_last-child.selector → parser/level_1/basic_last-child.selector} +0 -0
  34. data/spec/fixtures/parser/level_1/basic_nth-child-2.output +1 -0
  35. data/spec/fixtures/{basic_nth-child-2.selector → parser/level_1/basic_nth-child-2.selector} +0 -0
  36. data/spec/fixtures/parser/level_1/basic_nth-child.output +1 -0
  37. data/spec/fixtures/{basic_nth-child.selector → parser/level_1/basic_nth-child.selector} +0 -0
  38. data/spec/fixtures/parser/level_1/basic_nth-last-child.output +1 -0
  39. data/spec/fixtures/{basic_nth-last-child.selector → parser/level_1/basic_nth-last-child.selector} +0 -0
  40. data/spec/fixtures/parser/level_1/basic_root_pseudo.output +1 -0
  41. data/spec/fixtures/{basic_root_pseudo.selector → parser/level_1/basic_root_pseudo.selector} +0 -0
  42. data/spec/fixtures/{basic_type.selector → parser/level_1/basic_type.output} +0 -0
  43. data/spec/fixtures/parser/level_1/basic_type.selector +1 -0
  44. data/spec/fixtures/{basic_type2.selector → parser/level_1/basic_type2.output} +0 -0
  45. data/spec/fixtures/parser/level_1/basic_type2.selector +1 -0
  46. data/spec/fixtures/parser/level_1/basic_type3.output +1 -0
  47. data/spec/fixtures/{basic_type3.selector → parser/level_1/basic_type3.selector} +0 -0
  48. data/spec/fixtures/parser/level_1/basic_universal.output +1 -0
  49. data/spec/fixtures/{basic_universal.selector → parser/level_1/basic_universal.selector} +0 -0
  50. data/spec/fixtures/parser/level_3/basic_has-sans-paren.output +1 -0
  51. data/spec/fixtures/parser/level_3/basic_has-sans-paren.selector +2 -0
  52. data/spec/fixtures/parser/level_3/basic_has-whitespace.output +1 -0
  53. data/spec/fixtures/parser/level_3/basic_has-whitespace.selector +3 -0
  54. data/spec/fixtures/parser/level_3/basic_has.output +1 -0
  55. data/spec/fixtures/parser/level_3/basic_has.selector +1 -0
  56. data/spec/parser_spec.rb +52 -0
  57. metadata +123 -148
  58. data/spec/fixtures/README.md +0 -14
  59. data/spec/fixtures/alltests.txt +0 -31
  60. data/spec/fixtures/basic.json +0 -31
  61. data/spec/fixtures/basic.xml +0 -31
  62. data/spec/fixtures/basic_children.ast +0 -14
  63. data/spec/fixtures/basic_children.output +0 -1
  64. data/spec/fixtures/basic_combination.ast +0 -13
  65. data/spec/fixtures/basic_combination.output +0 -1
  66. data/spec/fixtures/basic_first-child.ast +0 -11
  67. data/spec/fixtures/basic_first-child.output +0 -2
  68. data/spec/fixtures/basic_grouping.ast +0 -22
  69. data/spec/fixtures/basic_grouping.output +0 -4
  70. data/spec/fixtures/basic_id.ast +0 -7
  71. data/spec/fixtures/basic_id.output +0 -1
  72. data/spec/fixtures/basic_id_multiple.ast +0 -7
  73. data/spec/fixtures/basic_id_multiple.output +0 -3
  74. data/spec/fixtures/basic_id_quotes.ast +0 -7
  75. data/spec/fixtures/basic_id_quotes.output +0 -2
  76. data/spec/fixtures/basic_id_with_type.ast +0 -10
  77. data/spec/fixtures/basic_id_with_type.output +0 -1
  78. data/spec/fixtures/basic_last-child.ast +0 -11
  79. data/spec/fixtures/basic_last-child.output +0 -2
  80. data/spec/fixtures/basic_nth-child-2.ast +0 -11
  81. data/spec/fixtures/basic_nth-child-2.output +0 -4
  82. data/spec/fixtures/basic_nth-child.ast +0 -11
  83. data/spec/fixtures/basic_nth-child.output +0 -3
  84. data/spec/fixtures/basic_nth-last-child.ast +0 -11
  85. data/spec/fixtures/basic_nth-last-child.output +0 -2
  86. data/spec/fixtures/basic_root_pseudo.ast +0 -6
  87. data/spec/fixtures/basic_root_pseudo.output +0 -31
  88. data/spec/fixtures/basic_type.ast +0 -7
  89. data/spec/fixtures/basic_type.output +0 -14
  90. data/spec/fixtures/basic_type2.ast +0 -7
  91. data/spec/fixtures/basic_type2.output +0 -1
  92. data/spec/fixtures/basic_type3.ast +0 -7
  93. data/spec/fixtures/basic_type3.output +0 -47
  94. data/spec/fixtures/basic_universal.ast +0 -5
  95. data/spec/fixtures/basic_universal.output +0 -86
@@ -63,7 +63,8 @@ grammar JSONSelectSelector
63
63
  # ;
64
64
  rule pseudo
65
65
  ( ':' a:pseudo_class_name <JSONSelect::Ast::PseudoSelector> ) /
66
- ( ':' a:pseudo_function_name '(' ws* e:expression ws* ')' <JSONSelect::Ast::PseudoSelector> )
66
+ ( ':' a:positional_pseudo_function_name ws* '(' ws* e:expression ws* ')' <JSONSelect::Ast::PseudoSelector> ) /
67
+ ( ':' a:subselector_pseudo_function_name ws* '(' ws* s:selectors_group ws* ')' <JSONSelect::Ast::PseudoSelector> )
67
68
  end
68
69
 
69
70
  # pseudo_class_name
@@ -74,10 +75,16 @@ grammar JSONSelectSelector
74
75
 
75
76
  # pseudo_function_name
76
77
  # : `nth-child` | `nth-last-child`
77
- rule pseudo_function_name
78
+ rule positional_pseudo_function_name
78
79
  'nth-child' / 'nth-last-child'
79
80
  end
80
81
 
82
+ # pseudo_function_name
83
+ # : `nth-child` | `nth-last-child`
84
+ rule subselector_pseudo_function_name
85
+ 'has'
86
+ end
87
+
81
88
  # expression
82
89
  # /* expression is and of the form "an+b" */
83
90
  # : TODO
@@ -1,3 +1,3 @@
1
1
  class JSONSelect
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -1,55 +1,111 @@
1
1
  describe "JSONSelect", "conformance" do
2
2
 
3
- %w( basic ).each do |test|
4
- selectors = "../fixtures/#{test}_*.selector"
5
- selectors = Dir[File.expand_path(selectors, __FILE__)]
3
+ p_levels = "../fixtures/conformance/level_*"
4
+ p_groups = "{basic}.json"
6
5
 
7
- describe "(#{test})" do
6
+ levels = {}
8
7
 
9
- let(:input) do
10
- path = File.expand_path("../fixtures/#{test}.json", __FILE__)
11
- Yajl::Parser.parse(File.read(path))
12
- end
8
+ d = Dir[File.expand_path(p_levels, __FILE__)]
9
+ d.each do |dir|
10
+ level = (levels[File.basename(dir)] = {})
13
11
 
14
- selectors.each do |selector|
15
- basename = File.basename(selector, '.selector')
16
- name = basename[(test.size + 1)..-1]
17
- output = File.expand_path("../fixtures/#{basename}.output", __FILE__)
18
- ast = File.expand_path("../fixtures/#{basename}.ast", __FILE__)
12
+ d = Dir[File.expand_path(p_groups, dir)]
13
+ d.each do |json|
14
+ gname = File.basename(json, '.json')
15
+ group = (level[gname] = {})
16
+ group[:json] = json
19
17
 
20
- describe "(#{name})" do
18
+ d = Dir[File.expand_path("../#{gname}_*.selector", json)]
19
+ d.each do |selector|
20
+ name = File.basename(selector, '.selector').split('_', 2).last
21
21
 
22
- it "parses the selector" do
23
- ast = Yajl::Parser.parse(File.read(ast))
24
- s = JSONSelect(File.read(selector).strip)
25
- s.should be_a(JSONSelect)
26
- Yajl::Parser.parse(Yajl::Encoder.encode(s.ast)).should == ast
27
- end
22
+ group[name] = [selector,
23
+ File.expand_path("../#{gname}_#{name}.output", selector)]
24
+ end
25
+ end
26
+ end
28
27
 
29
- it "produces the correct output" do
30
- s = JSONSelect(File.read(selector).strip)
31
- e = []
32
- Yajl::Parser.parse(File.read(output)) { |o| e << o }
33
- s.matches(input).should == e
34
- end
28
+ levels.each do |level, groups|
29
+ describe "(#{level})" do
30
+ groups.each do |group, tests|
31
+ describe "(#{group})" do
32
+ input_p = tests.delete(:json)
35
33
 
36
- it "finds the first matching child" do
37
- s = JSONSelect(File.read(selector).strip)
38
- e = []
39
- Yajl::Parser.parse(File.read(output)) { |o| e << o }
40
- s.match(input).should == e.first
34
+ let(:input) do
35
+ Yajl::Parser.parse(File.read(input_p))
41
36
  end
42
37
 
43
- it "can correctly test the object" do
44
- s = JSONSelect(File.read(selector).strip)
45
- e = []
46
- Yajl::Parser.parse(File.read(output)) { |o| e << o }
47
- s.test(input).should be_true
48
- end
38
+ tests.each do |test, (selector_p, output_p)|
39
+ describe "(#{test})" do
40
+
41
+ let(:selector) do
42
+ File.read(selector_p)
43
+ end
49
44
 
45
+ let(:output) do
46
+ o = File.read(output_p)
47
+ o.sub! /^172$/, "172\n\"ignored object\""
48
+
49
+ e = []
50
+ Yajl::Parser.parse(o) { |o| e << o }
51
+ e
52
+ end
53
+
54
+ it "finds all matching children" do
55
+ JSONSelect(selector).matches(input).should == output
56
+ end
57
+
58
+ it "finds the first matching child" do
59
+ JSONSelect(selector).match(input).should == output.first
60
+ end
61
+
62
+ it "can correctly test the object" do
63
+ JSONSelect(selector).test(input).should be_true
64
+ end
65
+
66
+ end
67
+ end
50
68
  end
51
69
  end
52
-
53
70
  end
54
71
  end
72
+
73
+ # %w( basic ).each do |test|
74
+ # selectors = "../fixtures/#{test}_*.selector"
75
+ # selectors = Dir[File.expand_path(selectors, __FILE__)]
76
+ #
77
+ # describe "(#{test})" do
78
+ #
79
+ # let(:input) do
80
+ # path = File.expand_path("../fixtures/#{test}.json", __FILE__)
81
+ # Yajl::Parser.parse(File.read(path))
82
+ # end
83
+ #
84
+ # selectors.each do |selector|
85
+ # basename = File.basename(selector, '.selector')
86
+ # name = basename[(test.size + 1)..-1]
87
+ # output = File.expand_path("../fixtures/#{basename}.output", __FILE__)
88
+ # # ast = File.expand_path("../fixtures/#{basename}.ast", __FILE__)
89
+ # selector_o = File.expand_path("../fixtures/#{basename}.selector.out", __FILE__)
90
+ #
91
+ # describe "(#{name})" do
92
+ #
93
+ # # it "parses the selector" do
94
+ # # ast = Yajl::Parser.parse(File.read(ast))
95
+ # # s = JSONSelect(File.read(selector).strip)
96
+ # # s.should be_a(JSONSelect)
97
+ # # Yajl::Parser.parse(Yajl::Encoder.encode(s.ast)).should == ast
98
+ # # end
99
+ #
100
+ # # it "produces the correct selector" do
101
+ # # s = JSONSelect(File.read(selector).strip)
102
+ # # e = File.read(selector_o)
103
+ # # s.to_s.should == e
104
+ # # end
105
+ #
106
+ # end
107
+ # end
108
+ #
109
+ # end
110
+ # end
55
111
  end
@@ -0,0 +1 @@
1
+ string:nth-child(0n1)
@@ -0,0 +1 @@
1
+ string.level, number
@@ -0,0 +1 @@
1
+ .favoriteColor
@@ -0,0 +1 @@
1
+ string.favoriteColor
@@ -0,0 +1 @@
1
+ string:nth-last-child(0n1)
@@ -0,0 +1 @@
1
+ string:nth-child(-1n2)
@@ -0,0 +1 @@
1
+ string:nth-child(2n1)
@@ -0,0 +1 @@
1
+ string:nth-last-child(0n1)
@@ -0,0 +1 @@
1
+ Error: missing closing paren
@@ -0,0 +1,2 @@
1
+ object:has(.language
2
+
@@ -0,0 +1 @@
1
+ object:has(.language)
@@ -0,0 +1,3 @@
1
+ object:has ( .language )
2
+
3
+
@@ -0,0 +1 @@
1
+ object:has(.language)
@@ -0,0 +1 @@
1
+ object:has(.language)
@@ -0,0 +1,52 @@
1
+ describe "JSONSelect", "parser" do
2
+
3
+ p_levels = "../fixtures/parser/level_*"
4
+ p_groups = %w( basic )
5
+
6
+ levels = {}
7
+
8
+ d = Dir[File.expand_path(p_levels, __FILE__)]
9
+ d.each do |dir|
10
+ level = (levels[File.basename(dir)] = {})
11
+
12
+ p_groups.each do |gname|
13
+ json = File.expand_path(gname, dir)
14
+ group = (level[gname] = {})
15
+
16
+ d = Dir[File.expand_path("../#{gname}_*.selector", json)]
17
+ d.each do |selector|
18
+ name = File.basename(selector, '.selector').split('_', 2).last
19
+
20
+ group[name] = [selector,
21
+ File.expand_path("../#{gname}_#{name}.output", selector)]
22
+ end
23
+ end
24
+ end
25
+
26
+ levels.each do |level, groups|
27
+ describe "(#{level})" do
28
+ groups.each do |group, tests|
29
+ describe "(#{group})" do
30
+ tests.each do |test, (selector_p, output_p)|
31
+ describe "(#{test})" do
32
+
33
+ let(:selector) do
34
+ File.read(selector_p)
35
+ end
36
+
37
+ let(:output) do
38
+ File.read(output_p)
39
+ end
40
+
41
+ it "produces the correct selector" do
42
+ JSONSelect(selector).to_s.should == output
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ end
metadata CHANGED
@@ -1,40 +1,41 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: json_select
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
4
5
  prerelease:
5
- version: 0.1.3
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Simon Menke
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-27 00:00:00 +02:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2013-03-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: treetop
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
25
22
  type: :runtime
26
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
27
30
  description: JSONSelect implementation for Ruby
28
- email:
31
+ email:
29
32
  - simon.menke@gmail.com
30
33
  executables: []
31
-
32
34
  extensions: []
33
-
34
35
  extra_rdoc_files: []
35
-
36
- files:
36
+ files:
37
37
  - .gitignore
38
+ - .gitmodules
38
39
  - .travis.yml
39
40
  - Gemfile
40
41
  - LICENSE
@@ -63,147 +64,121 @@ files:
63
64
  - lib/json_select/selector_parser.tt
64
65
  - lib/json_select/version.rb
65
66
  - spec/conformance_spec.rb
66
- - spec/fixtures/README.md
67
- - spec/fixtures/alltests.txt
68
- - spec/fixtures/basic.json
69
- - spec/fixtures/basic.xml
70
- - spec/fixtures/basic_children.ast
71
- - spec/fixtures/basic_children.output
72
- - spec/fixtures/basic_children.selector
73
- - spec/fixtures/basic_combination.ast
74
- - spec/fixtures/basic_combination.output
75
- - spec/fixtures/basic_combination.selector
76
- - spec/fixtures/basic_first-child.ast
77
- - spec/fixtures/basic_first-child.output
78
- - spec/fixtures/basic_first-child.selector
79
- - spec/fixtures/basic_grouping.ast
80
- - spec/fixtures/basic_grouping.output
81
- - spec/fixtures/basic_grouping.selector
82
- - spec/fixtures/basic_id.ast
83
- - spec/fixtures/basic_id.output
84
- - spec/fixtures/basic_id.selector
85
- - spec/fixtures/basic_id_multiple.ast
86
- - spec/fixtures/basic_id_multiple.output
87
- - spec/fixtures/basic_id_multiple.selector
88
- - spec/fixtures/basic_id_quotes.ast
89
- - spec/fixtures/basic_id_quotes.output
90
- - spec/fixtures/basic_id_quotes.selector
91
- - spec/fixtures/basic_id_with_type.ast
92
- - spec/fixtures/basic_id_with_type.output
93
- - spec/fixtures/basic_id_with_type.selector
94
- - spec/fixtures/basic_last-child.ast
95
- - spec/fixtures/basic_last-child.output
96
- - spec/fixtures/basic_last-child.selector
97
- - spec/fixtures/basic_nth-child-2.ast
98
- - spec/fixtures/basic_nth-child-2.output
99
- - spec/fixtures/basic_nth-child-2.selector
100
- - spec/fixtures/basic_nth-child.ast
101
- - spec/fixtures/basic_nth-child.output
102
- - spec/fixtures/basic_nth-child.selector
103
- - spec/fixtures/basic_nth-last-child.ast
104
- - spec/fixtures/basic_nth-last-child.output
105
- - spec/fixtures/basic_nth-last-child.selector
106
- - spec/fixtures/basic_root_pseudo.ast
107
- - spec/fixtures/basic_root_pseudo.output
108
- - spec/fixtures/basic_root_pseudo.selector
109
- - spec/fixtures/basic_type.ast
110
- - spec/fixtures/basic_type.output
111
- - spec/fixtures/basic_type.selector
112
- - spec/fixtures/basic_type2.ast
113
- - spec/fixtures/basic_type2.output
114
- - spec/fixtures/basic_type2.selector
115
- - spec/fixtures/basic_type3.ast
116
- - spec/fixtures/basic_type3.output
117
- - spec/fixtures/basic_type3.selector
118
- - spec/fixtures/basic_universal.ast
119
- - spec/fixtures/basic_universal.output
120
- - spec/fixtures/basic_universal.selector
67
+ - spec/fixtures/parser/level_1/basic_children.output
68
+ - spec/fixtures/parser/level_1/basic_children.selector
69
+ - spec/fixtures/parser/level_1/basic_combination.output
70
+ - spec/fixtures/parser/level_1/basic_combination.selector
71
+ - spec/fixtures/parser/level_1/basic_first-child.output
72
+ - spec/fixtures/parser/level_1/basic_first-child.selector
73
+ - spec/fixtures/parser/level_1/basic_grouping.output
74
+ - spec/fixtures/parser/level_1/basic_grouping.selector
75
+ - spec/fixtures/parser/level_1/basic_id.output
76
+ - spec/fixtures/parser/level_1/basic_id.selector
77
+ - spec/fixtures/parser/level_1/basic_id_multiple.output
78
+ - spec/fixtures/parser/level_1/basic_id_multiple.selector
79
+ - spec/fixtures/parser/level_1/basic_id_quotes.output
80
+ - spec/fixtures/parser/level_1/basic_id_quotes.selector
81
+ - spec/fixtures/parser/level_1/basic_id_with_type.output
82
+ - spec/fixtures/parser/level_1/basic_id_with_type.selector
83
+ - spec/fixtures/parser/level_1/basic_last-child.output
84
+ - spec/fixtures/parser/level_1/basic_last-child.selector
85
+ - spec/fixtures/parser/level_1/basic_nth-child-2.output
86
+ - spec/fixtures/parser/level_1/basic_nth-child-2.selector
87
+ - spec/fixtures/parser/level_1/basic_nth-child.output
88
+ - spec/fixtures/parser/level_1/basic_nth-child.selector
89
+ - spec/fixtures/parser/level_1/basic_nth-last-child.output
90
+ - spec/fixtures/parser/level_1/basic_nth-last-child.selector
91
+ - spec/fixtures/parser/level_1/basic_root_pseudo.output
92
+ - spec/fixtures/parser/level_1/basic_root_pseudo.selector
93
+ - spec/fixtures/parser/level_1/basic_type.output
94
+ - spec/fixtures/parser/level_1/basic_type.selector
95
+ - spec/fixtures/parser/level_1/basic_type2.output
96
+ - spec/fixtures/parser/level_1/basic_type2.selector
97
+ - spec/fixtures/parser/level_1/basic_type3.output
98
+ - spec/fixtures/parser/level_1/basic_type3.selector
99
+ - spec/fixtures/parser/level_1/basic_universal.output
100
+ - spec/fixtures/parser/level_1/basic_universal.selector
101
+ - spec/fixtures/parser/level_3/basic_has-sans-paren.output
102
+ - spec/fixtures/parser/level_3/basic_has-sans-paren.selector
103
+ - spec/fixtures/parser/level_3/basic_has-whitespace.output
104
+ - spec/fixtures/parser/level_3/basic_has-whitespace.selector
105
+ - spec/fixtures/parser/level_3/basic_has.output
106
+ - spec/fixtures/parser/level_3/basic_has.selector
107
+ - spec/parser_spec.rb
121
108
  - spec/ruby_extensions_spec.rb
122
109
  - spec/spec_helper.rb
123
- has_rdoc: true
124
110
  homepage: http://github.com/fd/json_select
125
111
  licenses: []
126
-
127
112
  post_install_message:
128
113
  rdoc_options: []
129
-
130
- require_paths:
114
+ require_paths:
131
115
  - lib
132
- required_ruby_version: !ruby/object:Gem::Requirement
116
+ required_ruby_version: !ruby/object:Gem::Requirement
133
117
  none: false
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: "0"
138
- required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ segments:
123
+ - 0
124
+ hash: 3219129278350857102
125
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
126
  none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: "0"
127
+ requirements:
128
+ - - ! '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ segments:
132
+ - 0
133
+ hash: 3219129278350857102
144
134
  requirements: []
145
-
146
135
  rubyforge_project: json_select
147
- rubygems_version: 1.6.2
136
+ rubygems_version: 1.8.23
148
137
  signing_key:
149
138
  specification_version: 3
150
139
  summary: JSONSelect implementation for Ruby
151
- test_files:
140
+ test_files:
152
141
  - spec/conformance_spec.rb
153
- - spec/fixtures/README.md
154
- - spec/fixtures/alltests.txt
155
- - spec/fixtures/basic.json
156
- - spec/fixtures/basic.xml
157
- - spec/fixtures/basic_children.ast
158
- - spec/fixtures/basic_children.output
159
- - spec/fixtures/basic_children.selector
160
- - spec/fixtures/basic_combination.ast
161
- - spec/fixtures/basic_combination.output
162
- - spec/fixtures/basic_combination.selector
163
- - spec/fixtures/basic_first-child.ast
164
- - spec/fixtures/basic_first-child.output
165
- - spec/fixtures/basic_first-child.selector
166
- - spec/fixtures/basic_grouping.ast
167
- - spec/fixtures/basic_grouping.output
168
- - spec/fixtures/basic_grouping.selector
169
- - spec/fixtures/basic_id.ast
170
- - spec/fixtures/basic_id.output
171
- - spec/fixtures/basic_id.selector
172
- - spec/fixtures/basic_id_multiple.ast
173
- - spec/fixtures/basic_id_multiple.output
174
- - spec/fixtures/basic_id_multiple.selector
175
- - spec/fixtures/basic_id_quotes.ast
176
- - spec/fixtures/basic_id_quotes.output
177
- - spec/fixtures/basic_id_quotes.selector
178
- - spec/fixtures/basic_id_with_type.ast
179
- - spec/fixtures/basic_id_with_type.output
180
- - spec/fixtures/basic_id_with_type.selector
181
- - spec/fixtures/basic_last-child.ast
182
- - spec/fixtures/basic_last-child.output
183
- - spec/fixtures/basic_last-child.selector
184
- - spec/fixtures/basic_nth-child-2.ast
185
- - spec/fixtures/basic_nth-child-2.output
186
- - spec/fixtures/basic_nth-child-2.selector
187
- - spec/fixtures/basic_nth-child.ast
188
- - spec/fixtures/basic_nth-child.output
189
- - spec/fixtures/basic_nth-child.selector
190
- - spec/fixtures/basic_nth-last-child.ast
191
- - spec/fixtures/basic_nth-last-child.output
192
- - spec/fixtures/basic_nth-last-child.selector
193
- - spec/fixtures/basic_root_pseudo.ast
194
- - spec/fixtures/basic_root_pseudo.output
195
- - spec/fixtures/basic_root_pseudo.selector
196
- - spec/fixtures/basic_type.ast
197
- - spec/fixtures/basic_type.output
198
- - spec/fixtures/basic_type.selector
199
- - spec/fixtures/basic_type2.ast
200
- - spec/fixtures/basic_type2.output
201
- - spec/fixtures/basic_type2.selector
202
- - spec/fixtures/basic_type3.ast
203
- - spec/fixtures/basic_type3.output
204
- - spec/fixtures/basic_type3.selector
205
- - spec/fixtures/basic_universal.ast
206
- - spec/fixtures/basic_universal.output
207
- - spec/fixtures/basic_universal.selector
142
+ - spec/fixtures/parser/level_1/basic_children.output
143
+ - spec/fixtures/parser/level_1/basic_children.selector
144
+ - spec/fixtures/parser/level_1/basic_combination.output
145
+ - spec/fixtures/parser/level_1/basic_combination.selector
146
+ - spec/fixtures/parser/level_1/basic_first-child.output
147
+ - spec/fixtures/parser/level_1/basic_first-child.selector
148
+ - spec/fixtures/parser/level_1/basic_grouping.output
149
+ - spec/fixtures/parser/level_1/basic_grouping.selector
150
+ - spec/fixtures/parser/level_1/basic_id.output
151
+ - spec/fixtures/parser/level_1/basic_id.selector
152
+ - spec/fixtures/parser/level_1/basic_id_multiple.output
153
+ - spec/fixtures/parser/level_1/basic_id_multiple.selector
154
+ - spec/fixtures/parser/level_1/basic_id_quotes.output
155
+ - spec/fixtures/parser/level_1/basic_id_quotes.selector
156
+ - spec/fixtures/parser/level_1/basic_id_with_type.output
157
+ - spec/fixtures/parser/level_1/basic_id_with_type.selector
158
+ - spec/fixtures/parser/level_1/basic_last-child.output
159
+ - spec/fixtures/parser/level_1/basic_last-child.selector
160
+ - spec/fixtures/parser/level_1/basic_nth-child-2.output
161
+ - spec/fixtures/parser/level_1/basic_nth-child-2.selector
162
+ - spec/fixtures/parser/level_1/basic_nth-child.output
163
+ - spec/fixtures/parser/level_1/basic_nth-child.selector
164
+ - spec/fixtures/parser/level_1/basic_nth-last-child.output
165
+ - spec/fixtures/parser/level_1/basic_nth-last-child.selector
166
+ - spec/fixtures/parser/level_1/basic_root_pseudo.output
167
+ - spec/fixtures/parser/level_1/basic_root_pseudo.selector
168
+ - spec/fixtures/parser/level_1/basic_type.output
169
+ - spec/fixtures/parser/level_1/basic_type.selector
170
+ - spec/fixtures/parser/level_1/basic_type2.output
171
+ - spec/fixtures/parser/level_1/basic_type2.selector
172
+ - spec/fixtures/parser/level_1/basic_type3.output
173
+ - spec/fixtures/parser/level_1/basic_type3.selector
174
+ - spec/fixtures/parser/level_1/basic_universal.output
175
+ - spec/fixtures/parser/level_1/basic_universal.selector
176
+ - spec/fixtures/parser/level_3/basic_has-sans-paren.output
177
+ - spec/fixtures/parser/level_3/basic_has-sans-paren.selector
178
+ - spec/fixtures/parser/level_3/basic_has-whitespace.output
179
+ - spec/fixtures/parser/level_3/basic_has-whitespace.selector
180
+ - spec/fixtures/parser/level_3/basic_has.output
181
+ - spec/fixtures/parser/level_3/basic_has.selector
182
+ - spec/parser_spec.rb
208
183
  - spec/ruby_extensions_spec.rb
209
184
  - spec/spec_helper.rb