class ParamsReady::Query::PredicateRegistry
Public Class Methods
find_operator(identifier, format, collision_check)
click to toggle source
# File lib/params_ready/query/predicate.rb, line 175 def self.find_operator(identifier, format, collision_check) operator = operator_by(identifier, format) if operator.nil? name_as_string = identifier.to_s invertor = if format.alternative? 'n_' else 'not_' end if !collision_check && name_as_string.start_with?(invertor) bare_name = name_as_string[invertor.length..-1].to_sym inverted = PredicateRegistry.operator(bare_name, format) if inverted.nil? nil elsif inverted.inverse_of.nil? Not.new(inverted) else operator(inverted.inverse_of, format) end else nil end else operator end end
operator(identifier, format, collision_check = false)
click to toggle source
# File lib/params_ready/query/predicate.rb, line 166 def self.operator(identifier, format, collision_check = false) operator = find_operator(identifier, format, collision_check) if operator.nil? && !collision_check raise("No such operator: #{identifier}") end operator end
operator_by(identifier, format)
click to toggle source
# File lib/params_ready/query/predicate.rb, line 158 def self.operator_by(identifier, format) if format.alternative? @@operator_alt_names[identifier] else @@operator_names[identifier] end end