├── .gitignore ├── .gitmodules ├── .travis.yml ├── Gemfile ├── LICENSE ├── README.md ├── Rakefile ├── json_select.gemspec ├── lib ├── json_select.rb └── json_select │ ├── ast │ ├── combination_selector.rb │ ├── complex_expr.rb │ ├── even_expr.rb │ ├── hash_selector.rb │ ├── odd_expr.rb │ ├── pseudo_selector.rb │ ├── selector_group.rb │ ├── simple_expr.rb │ ├── simple_selector.rb │ ├── type_selector.rb │ └── universal_selector.rb │ ├── helpers │ ├── depth.rb │ ├── key.rb │ ├── position.rb │ ├── size.rb │ └── type.rb │ ├── selector.rb │ ├── selector_parser.rb │ ├── selector_parser.tt │ └── version.rb └── spec ├── conformance_spec.rb ├── fixtures └── parser │ ├── level_1 │ ├── basic_children.output │ ├── basic_children.selector │ ├── basic_combination.output │ ├── basic_combination.selector │ ├── basic_first-child.output │ ├── basic_first-child.selector │ ├── basic_grouping.output │ ├── basic_grouping.selector │ ├── basic_id.output │ ├── basic_id.selector │ ├── basic_id_multiple.output │ ├── basic_id_multiple.selector │ ├── basic_id_quotes.output │ ├── basic_id_quotes.selector │ ├── basic_id_with_type.output │ ├── basic_id_with_type.selector │ ├── basic_last-child.output │ ├── basic_last-child.selector │ ├── basic_nth-child-2.output │ ├── basic_nth-child-2.selector │ ├── basic_nth-child.output │ ├── basic_nth-child.selector │ ├── basic_nth-last-child.output │ ├── basic_nth-last-child.selector │ ├── basic_root_pseudo.output │ ├── basic_root_pseudo.selector │ ├── basic_type.output │ ├── basic_type.selector │ ├── basic_type2.output │ ├── basic_type2.selector │ ├── basic_type3.output │ ├── basic_type3.selector │ ├── basic_universal.output │ └── basic_universal.selector │ └── level_3 │ ├── basic_has-sans-paren.output │ ├── basic_has-sans-paren.selector │ ├── basic_has-whitespace.output │ ├── basic_has-whitespace.selector │ ├── basic_has.output │ └── basic_has.selector ├── parser_spec.rb ├── ruby_extensions_spec.rb └── spec_helper.rb /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | .bundle 3 | Gemfile.lock 4 | pkg/* 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/.gitmodules -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/.travis.yml -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/Rakefile -------------------------------------------------------------------------------- /json_select.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/json_select.gemspec -------------------------------------------------------------------------------- /lib/json_select.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select.rb -------------------------------------------------------------------------------- /lib/json_select/ast/combination_selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/combination_selector.rb -------------------------------------------------------------------------------- /lib/json_select/ast/complex_expr.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/complex_expr.rb -------------------------------------------------------------------------------- /lib/json_select/ast/even_expr.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/even_expr.rb -------------------------------------------------------------------------------- /lib/json_select/ast/hash_selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/hash_selector.rb -------------------------------------------------------------------------------- /lib/json_select/ast/odd_expr.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/odd_expr.rb -------------------------------------------------------------------------------- /lib/json_select/ast/pseudo_selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/pseudo_selector.rb -------------------------------------------------------------------------------- /lib/json_select/ast/selector_group.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/selector_group.rb -------------------------------------------------------------------------------- /lib/json_select/ast/simple_expr.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/simple_expr.rb -------------------------------------------------------------------------------- /lib/json_select/ast/simple_selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/simple_selector.rb -------------------------------------------------------------------------------- /lib/json_select/ast/type_selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/type_selector.rb -------------------------------------------------------------------------------- /lib/json_select/ast/universal_selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/ast/universal_selector.rb -------------------------------------------------------------------------------- /lib/json_select/helpers/depth.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/helpers/depth.rb -------------------------------------------------------------------------------- /lib/json_select/helpers/key.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/helpers/key.rb -------------------------------------------------------------------------------- /lib/json_select/helpers/position.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/helpers/position.rb -------------------------------------------------------------------------------- /lib/json_select/helpers/size.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/helpers/size.rb -------------------------------------------------------------------------------- /lib/json_select/helpers/type.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/helpers/type.rb -------------------------------------------------------------------------------- /lib/json_select/selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/selector.rb -------------------------------------------------------------------------------- /lib/json_select/selector_parser.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/selector_parser.rb -------------------------------------------------------------------------------- /lib/json_select/selector_parser.tt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/lib/json_select/selector_parser.tt -------------------------------------------------------------------------------- /lib/json_select/version.rb: -------------------------------------------------------------------------------- 1 | class JSONSelect 2 | VERSION = "0.1.4" 3 | end 4 | -------------------------------------------------------------------------------- /spec/conformance_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/spec/conformance_spec.rb -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_children.output: -------------------------------------------------------------------------------- 1 | .name > .first -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_children.selector: -------------------------------------------------------------------------------- 1 | .name > .first -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_combination.output: -------------------------------------------------------------------------------- 1 | .name .first -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_combination.selector: -------------------------------------------------------------------------------- 1 | .name .first -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_first-child.output: -------------------------------------------------------------------------------- 1 | string:nth-child(0n1) -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_first-child.selector: -------------------------------------------------------------------------------- 1 | string:first-child 2 | 3 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_grouping.output: -------------------------------------------------------------------------------- 1 | string.level, number -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_grouping.selector: -------------------------------------------------------------------------------- 1 | string.level,number 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id.output: -------------------------------------------------------------------------------- 1 | .favoriteColor -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id.selector: -------------------------------------------------------------------------------- 1 | .favoriteColor 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id_multiple.output: -------------------------------------------------------------------------------- 1 | .language -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id_multiple.selector: -------------------------------------------------------------------------------- 1 | .language 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id_quotes.output: -------------------------------------------------------------------------------- 1 | .weight -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id_quotes.selector: -------------------------------------------------------------------------------- 1 | ."weight" 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id_with_type.output: -------------------------------------------------------------------------------- 1 | string.favoriteColor -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_id_with_type.selector: -------------------------------------------------------------------------------- 1 | string.favoriteColor 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_last-child.output: -------------------------------------------------------------------------------- 1 | string:nth-last-child(0n1) -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_last-child.selector: -------------------------------------------------------------------------------- 1 | string:last-child 2 | 3 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_nth-child-2.output: -------------------------------------------------------------------------------- 1 | string:nth-child(-1n2) -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_nth-child-2.selector: -------------------------------------------------------------------------------- 1 | string:nth-child(-n+2) 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_nth-child.output: -------------------------------------------------------------------------------- 1 | string:nth-child(2n1) -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_nth-child.selector: -------------------------------------------------------------------------------- 1 | string:nth-child(odd) 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_nth-last-child.output: -------------------------------------------------------------------------------- 1 | string:nth-last-child(0n1) -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_nth-last-child.selector: -------------------------------------------------------------------------------- 1 | string:nth-last-child(1) 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_root_pseudo.output: -------------------------------------------------------------------------------- 1 | :root -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_root_pseudo.selector: -------------------------------------------------------------------------------- 1 | :root 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_type.output: -------------------------------------------------------------------------------- 1 | string -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_type.selector: -------------------------------------------------------------------------------- 1 | string -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_type2.output: -------------------------------------------------------------------------------- 1 | number -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_type2.selector: -------------------------------------------------------------------------------- 1 | number -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_type3.output: -------------------------------------------------------------------------------- 1 | object -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_type3.selector: -------------------------------------------------------------------------------- 1 | object 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_universal.output: -------------------------------------------------------------------------------- 1 | * -------------------------------------------------------------------------------- /spec/fixtures/parser/level_1/basic_universal.selector: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_3/basic_has-sans-paren.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/spec/fixtures/parser/level_3/basic_has-sans-paren.output -------------------------------------------------------------------------------- /spec/fixtures/parser/level_3/basic_has-sans-paren.selector: -------------------------------------------------------------------------------- 1 | object:has(.language 2 | 3 | -------------------------------------------------------------------------------- /spec/fixtures/parser/level_3/basic_has-whitespace.output: -------------------------------------------------------------------------------- 1 | object:has(.language) -------------------------------------------------------------------------------- /spec/fixtures/parser/level_3/basic_has-whitespace.selector: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/spec/fixtures/parser/level_3/basic_has-whitespace.selector -------------------------------------------------------------------------------- /spec/fixtures/parser/level_3/basic_has.output: -------------------------------------------------------------------------------- 1 | object:has(.language) -------------------------------------------------------------------------------- /spec/fixtures/parser/level_3/basic_has.selector: -------------------------------------------------------------------------------- 1 | object:has(.language) 2 | -------------------------------------------------------------------------------- /spec/parser_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/spec/parser_spec.rb -------------------------------------------------------------------------------- /spec/ruby_extensions_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/spec/ruby_extensions_spec.rb -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fd/json_select/HEAD/spec/spec_helper.rb --------------------------------------------------------------------------------