Releases: jmespath/jmespath.rb
Release v1.2.1 - 2016-03-31
- Minor change in require order.
1.2 (2016-03-30)
-
Errors caused by invalid function arguments normally raise
an arity or argument error. You can now preventJMESPath.search
from raising these errors by passingdisable_visit_error: true
.JMESPath.search(expression, data, disable_visit_errors: true)
This will cause these functions to return a null/nil value instead.
-
Fix for Ruby 1.9.3. Older versions of Ruby ship with a version of the json
gem that can not perform the following:JSON.load('1')
This results in the JMESPath library in assuming is parsing an unknown or
invalid token. This works fine newer versions of Ruby. To resolve this issue
the library is forcing a newer version of thejson
gem. -
Fix for boolean truthy checks.
See related GitHub issue #15. -
Updated code to pass the latest shared compliance tests.
-
Added support for the
map
function. -
Added support for JEP-9,
including unary filter expressions, and&&
filter expressions.
Release v1.2 - 2016-03-31
References: #11
-
Errors caused by invalid function arguments normally raise
an arity or argument error. You can now preventJMESPath.search
from raising these errors by passingdisable_visit_error: true
.JMESPath.search(expression, data, disable_visit_errors: true)
This will cause these functions to return a null/nil value instead.
-
Fix for Ruby 1.9.3. Older versions of Ruby ship with a version of the json
gem that can not perform the following:JSON.load('1')
This results in the JMESPath library in assuming is parsing an unknown or
invalid token. This works fine newer versions of Ruby. To resolve this issue
the library is forcing a newer version of thejson
gem. -
Fix for boolean truthy checks.
See related GitHub issue #15. -
Updated code to pass the latest shared compliance tests.
-
Added support for the
map
function. -
Added support for JEP-9,
including unary filter expressions, and&&
filter expressions.
Release v1.1.3 - 2015-09-17
- Removed json gem dependency.
Release v1.1.2 - 2015-09-17
- Resolved an issue preventing eager autoloading of comparator classes.
Release v1.1.1 - 2015-09-16
- Fix for Ruby version 1.9.3 which does not support
#[]
onEnumerable
from Ruby stdlib.
Release v1.1.0 - 2015-09-16
-
Updated the compliance tests. Pulled in the latest version from
jmespath/jmespath.test@47fa723. -
Adds a new JIT-friendly interpreter and AST optimizations that evaluating
expressions faster. -
Removed dependency on
multi_json
. -
Now running compliance tests as part of release process.
Release v1.0.2 - 2014-12-04
Release v1.0.1 - 2014-10-28
- Bug-fix, when accessing Struct objects with an invalid member
nil
is now returned, instead of raising an error.
Release v1.0.0 - 2014-10-28
-
The expression cache now has a maximum size.
-
Documented the
rake benchmark
andrake benchmark:cached
tasks. -
You can now disable expression caching when constructing a Runtime by
passing:cache_expressions => false
. Caching is still enabled by
default.# disable caching runtime = JMESPath::Runtime.new(cache_expressions: false) runtime.search(expression, data)
-
Adding a missing require statement for Pathname to the JMESPath module.
Release v0.9.0 - 2014-10-27
-
Addded support for searching over hashes with symbolized keys and Struct
objects indifferently# symbolized hash keys data = { foo: { bar: { yuck: 'value' } } } JMESPath.search('foo.bar.yuck', data) #=> 'value' # Struct objects data = Struct.new(:foo).new( Struct.new(:bar).new( Struct.new(:yuck).new('value') ) ) JMESPath.search('foo.bar.yuck', data) #=> 'value'
-
Added a simple thread-safe expression parser cache; This significantly speeds
up searching multiple times with the same expression. This cache is enabled
by default when callingJMESPath.search
-
Added simple benchmark suite. You can execute benchmarks with with
rake benchmark
orCACHE=1 rake benchmark
; Caching is disabled by default in the benchmarks.