class Querylet::Tree::Filter
Public Instance Methods
_eval(context)
click to toggle source
# File lib/querylet/tree.rb, line 94 def _eval(context) val = context.get(parameter.item) if filter == 'int' if val.is_a?(Integer) val.to_s else raise "expected input for: #{parameter.item} to be an Integer" end elsif filter == 'float' if val.is_a?(Float) val.to_s else raise "expected input for: #{parameter.item} to be a Float" end elsif filter == 'arr' if val.is_a?(Array) if val.all?{|a| a.class.to_s == 'String' } # to_a? was not working "'#{val.join("','")}'" elsif val.all?{|a| a.is_a?(Integer) } val.join(',') elsif val.all?{|a| a.is_a?(Float) } val.join(',') else raise "expected input for: #{parameter.item} to be an Array with all of the same datatype eg String, Integer, Float" end else raise "expected input for: #{parameter.item} to be an Array" end elsif filter == 'str' if val.class.to_s == 'String' # to_a? was not working "'#{val}'" else raise "expected input for: #{parameter.item} to be a String" end elsif filter == 'wild' if val.class.to_s == 'String' || val.is_a?(Integer) || val.is_a?(Float) "'%#{val}%'" else raise "expected input for: #{parameter.item} to be String, Integer or Array" end end end