burtpath 1.1.0

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/jmespath.rb ADDED
@@ -0,0 +1,42 @@
1
+ require 'json'
2
+ require 'pathname'
3
+
4
+ module JMESPath
5
+
6
+ autoload :CachingParser, 'jmespath/caching_parser'
7
+ autoload :Errors, 'jmespath/errors'
8
+ autoload :ExprNode, 'jmespath/expr_node'
9
+ autoload :Lexer, 'jmespath/lexer'
10
+ autoload :Nodes, 'jmespath/nodes'
11
+ autoload :OptimizingParser, 'jmespath/optimizing_parser'
12
+ autoload :Parser, 'jmespath/parser'
13
+ autoload :Runtime, 'jmespath/runtime'
14
+ autoload :Token, 'jmespath/token'
15
+ autoload :TokenStream, 'jmespath/token_stream'
16
+ autoload :VERSION, 'jmespath/version'
17
+
18
+ class << self
19
+
20
+
21
+ # @param [String] expression A valid
22
+ # [JMESPath](https://github.com/boto/jmespath) expression.
23
+ # @param [Hash] data
24
+ # @return [Mixed,nil] Returns the matched values. Returns `nil` if the
25
+ # expression does not resolve inside `data`.
26
+ def search(expression, data)
27
+ data = case data
28
+ when Hash, Struct then data # check for most common case first
29
+ when Pathname then load_json(data)
30
+ when IO, StringIO then JSON.load(data.read)
31
+ else data
32
+ end
33
+ Runtime.new.search(expression, data)
34
+ end
35
+
36
+ # @api private
37
+ def load_json(path)
38
+ JSON.load(File.open(path, 'r', encoding: 'UTF-8') { |f| f.read })
39
+ end
40
+
41
+ end
42
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: burtpath
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Trevor Rowe
8
+ - Burt Platform Team
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-09-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.8'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.8'
28
+ description: Implements JMESPath for Ruby
29
+ email:
30
+ - trevorrowe@gmail.com
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - LICENSE.txt
36
+ - lib/burtpath.rb
37
+ - lib/jmespath.rb
38
+ - lib/jmespath/caching_parser.rb
39
+ - lib/jmespath/errors.rb
40
+ - lib/jmespath/lexer.rb
41
+ - lib/jmespath/nodes.rb
42
+ - lib/jmespath/nodes/comparator.rb
43
+ - lib/jmespath/nodes/condition.rb
44
+ - lib/jmespath/nodes/current.rb
45
+ - lib/jmespath/nodes/expression.rb
46
+ - lib/jmespath/nodes/field.rb
47
+ - lib/jmespath/nodes/flatten.rb
48
+ - lib/jmespath/nodes/function.rb
49
+ - lib/jmespath/nodes/index.rb
50
+ - lib/jmespath/nodes/literal.rb
51
+ - lib/jmespath/nodes/multi_select_hash.rb
52
+ - lib/jmespath/nodes/multi_select_list.rb
53
+ - lib/jmespath/nodes/or.rb
54
+ - lib/jmespath/nodes/pipe.rb
55
+ - lib/jmespath/nodes/projection.rb
56
+ - lib/jmespath/nodes/slice.rb
57
+ - lib/jmespath/nodes/subexpression.rb
58
+ - lib/jmespath/optimizing_parser.rb
59
+ - lib/jmespath/parser.rb
60
+ - lib/jmespath/runtime.rb
61
+ - lib/jmespath/token.rb
62
+ - lib/jmespath/token_stream.rb
63
+ - lib/jmespath/version.rb
64
+ homepage: http://github.com/burtcorp/burtpath
65
+ licenses:
66
+ - Apache 2.0
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 2.4.5
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: JMESPath - Optimized Ruby Edition
88
+ test_files: []
89
+ has_rdoc: