class RulesProcessor::Operations::Base

Attributes

condition[RW]
condition_value[RW]
field[RW]
options[RW]
record_class[RW]
record_value[RW]
records[RW]
value[RW]

Public Class Methods

new(args = {}) click to toggle source
# File lib/rules_processor/operations/base.rb, line 14
def initialize(args = {})
  @records          = args[:records]
  @condition        = OpenStruct.new(args[:condition])
  @record_class     = condition.field.split('_', 2)[0].to_sym
  @field            = condition.field.split('_', 2)[1].to_sym
  @record_value     = actual_value
  @condition_value  = nullified_value
end

Public Instance Methods

perform() click to toggle source
# File lib/rules_processor/operations/base.rb, line 23
def perform
  fail NotImplementedError
end

Private Instance Methods

actual_value() click to toggle source
# File lib/rules_processor/operations/base.rb, line 29
def actual_value
  records[record_class].public_send(field)
end
nullified_value() click to toggle source
# File lib/rules_processor/operations/base.rb, line 33
def nullified_value
  return nil if condition.value == ''
  condition.value
end