lib/json_logic.rb in json_logic-0.4.0 vs lib/json_logic.rb in json_logic-0.4.1
- old
+ new
@@ -2,10 +2,15 @@
require 'core_ext/stringify_keys'
require 'json_logic/truthy'
require 'json_logic/operation'
module JSONLogic
def self.apply(logic, data)
+ if logic.is_a?(Array)
+ return logic.map { |val| apply(val, data) }
+ end
+
return logic unless logic.is_a?(Hash) # pass-thru
+
data = data.stringify_keys if data.is_a?(Hash) # Stringify keys to keep out problems with symbol/string mismatch
operator, values = logic.first # unwrap single-key hash
values = [values] unless values.is_a?(Array) # syntactic sugar
Operation.perform(operator, values, data || {})
end