Skip to content

Releases: jmespath/jmespath.rb

Release v1.2.1 - 2016-03-31

31 Mar 16:41
Compare
Choose a tag to compare
  • 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 prevent JMESPath.search
    from raising these errors by passing disable_visit_error: true.

    JMESPath.search(expression, data, disable_visit_errors: true)
    

    This will cause these functions to return a null/nil value instead.

    See related GitHub issue #10.

  • 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 the json gem.

    Fixes GitHub issue #11.

  • 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

31 Mar 06:36
Compare
Choose a tag to compare

References: #11

  • Errors caused by invalid function arguments normally raise
    an arity or argument error. You can now prevent JMESPath.search
    from raising these errors by passing disable_visit_error: true.

    JMESPath.search(expression, data, disable_visit_errors: true)
    

    This will cause these functions to return a null/nil value instead.

    See related GitHub issue #10.

  • 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 the json gem.

    Fixes GitHub issue #11.

  • 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

17 Sep 03:03
Compare
Choose a tag to compare
  • Removed json gem dependency.

Release v1.1.2 - 2015-09-17

17 Sep 02:56
Compare
Choose a tag to compare
  • Resolved an issue preventing eager autoloading of comparator classes.

Release v1.1.1 - 2015-09-16

16 Sep 21:34
Compare
Choose a tag to compare
  • Fix for Ruby version 1.9.3 which does not support #[]
    on Enumerable from Ruby stdlib.

Release v1.1.0 - 2015-09-16

16 Sep 21:29
Compare
Choose a tag to compare

References: #5, #7

  • 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.

    See related GitHub pull request.

  • Removed dependency on multi_json.

  • Now running compliance tests as part of release process.

Release v1.0.2 - 2014-12-04

04 Dec 19:16
Compare
Choose a tag to compare

References: #2, #3

  • Added a copy of the Apache 2.0 license to the project and now
    now bundling the license as part of the release.

Release v1.0.1 - 2014-10-28

28 Oct 18:13
Compare
Choose a tag to compare
  • 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

28 Oct 16:35
Compare
Choose a tag to compare
  • The expression cache now has a maximum size.

  • Documented the rake benchmark and rake 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

27 Oct 21:27
Compare
Choose a tag to compare
  • 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 calling JMESPath.search

  • Added simple benchmark suite. You can execute benchmarks with with rake benchmark
    or CACHE=1 rake benchmark; Caching is disabled by default in the benchmarks.