class Triggerable::Conditions::Condition
Public Class Methods
build(condition)
click to toggle source
# File lib/triggerable/conditions/condition.rb, line 4 def self.build condition return Condition.new if condition.blank? return LambdaCondition.new(condition) if condition.is_a?(Proc) return MethodCondition.new(condition) if condition.is_a?(Symbol) key = condition.keys.first value = condition[key] if [:and, :or].include?(key) predicate_condition(key, value) else field_condition(key, value) end end
Private Class Methods
condition_class(sym)
click to toggle source
# File lib/triggerable/conditions/condition.rb, line 39 def self.condition_class sym "Triggerable::Conditions::#{sym.to_s.camelize}".constantize end
field_condition(field, value)
click to toggle source
# File lib/triggerable/conditions/condition.rb, line 29 def self.field_condition field, value if value.is_a?(Array) In.new(field, value) elsif value.is_a?(Hash) condition_class(value.keys.first).new(field, value.values.first) else Is.new(field, value) end end
predicate_condition(class_name, value)
click to toggle source
# File lib/triggerable/conditions/condition.rb, line 25 def self.predicate_condition class_name, value condition_class(class_name).new(value) end
Public Instance Methods
scope()
click to toggle source
# File lib/triggerable/conditions/condition.rb, line 21 def scope; ''; end
true_for?(object)
click to toggle source
# File lib/triggerable/conditions/condition.rb, line 19 def true_for?(object); true; end