From 87e87089f0b0ade571de2ccc643b14c2cb435f88 Mon Sep 17 00:00:00 2001 From: dbarria Date: Wed, 17 Jul 2019 11:51:18 -0400 Subject: [PATCH] add support for ruby < 2.3 --- json_logic.gemspec | 4 +++- lib/core_ext/deep_fetch.rb | 2 ++ lib/json_logic/version.rb | 2 +- test/json_logic_test.rb | 6 ++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/json_logic.gemspec b/json_logic.gemspec index 4bfee64..329c0cc 100644 --- a/json_logic.gemspec +++ b/json_logic.gemspec @@ -18,10 +18,12 @@ Gem::Specification.new do |spec| end spec.require_paths = ['lib'] - spec.required_ruby_version = '>= 2.3' + spec.required_ruby_version = '>= 2.2' spec.add_development_dependency 'bundler', '~> 1.13' spec.add_development_dependency 'rake', '~> 10.0' spec.add_development_dependency 'minitest', '~> 5.0' + spec.add_development_dependency 'byebug' spec.add_development_dependency 'pry' + spec.add_runtime_dependency 'backport_dig' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3') end diff --git a/lib/core_ext/deep_fetch.rb b/lib/core_ext/deep_fetch.rb index 1c337ca..97612c1 100644 --- a/lib/core_ext/deep_fetch.rb +++ b/lib/core_ext/deep_fetch.rb @@ -1,3 +1,5 @@ +require 'backport_dig' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3') + class Hash def deep_fetch(key, default = nil) keys = key.to_s.split('.') diff --git a/lib/json_logic/version.rb b/lib/json_logic/version.rb index dd3ec53..590f4ef 100644 --- a/lib/json_logic/version.rb +++ b/lib/json_logic/version.rb @@ -1,3 +1,3 @@ module JSONLogic - VERSION = '0.4.3' + VERSION = '0.4.4' end diff --git a/test/json_logic_test.rb b/test/json_logic_test.rb index b803a5d..72a913f 100644 --- a/test/json_logic_test.rb +++ b/test/json_logic_test.rb @@ -37,6 +37,12 @@ def test_symbol_operation assert_equal(true, JSONLogic.apply(logic, data)) end + def test_false_value + logic = {'==': [{var: "flag"}, false]} + data = JSON.parse(%Q|{"flag": false}|) + assert_equal(true, JSONLogic.apply(logic, data)) + end + def test_add_operation new_operation = ->(v, d) { v.map { |x| x + 5 } } JSONLogic.add_operation('fives', new_operation)