class Triggerable::Conditions::PredicateCondition
Attributes
conditions[RW]
Public Class Methods
new(conditions)
click to toggle source
# File lib/triggerable/conditions/predicate/predicate_condition.rb, line 6 def initialize conditions @conditions = conditions.map do |condition| unless condition.is_a?(Hash) condition else field = condition.keys.first statement = condition.values.first Condition.build({field => statement}) end end end
Public Instance Methods
scope(table)
click to toggle source
# File lib/triggerable/conditions/predicate/predicate_condition.rb, line 19 def scope table predicate_scope = nil @conditions.each_with_index do |condition, index| condition_scope = condition.scope(table) predicate_scope = if index.zero? condition_scope else predicate_scope.send(predicate_name, condition_scope) end end predicate_scope end
Protected Instance Methods
predicate_name()
click to toggle source
# File lib/triggerable/conditions/predicate/predicate_condition.rb, line 37 def predicate_name self.class.name.demodulize.downcase end
true_conditions(object)
click to toggle source
# File lib/triggerable/conditions/predicate/predicate_condition.rb, line 41 def true_conditions object @conditions.select do |c| c.is_a?(Symbol) ? object.send(c) : c.true_for?(object) end end