Class: Optimus::Transformers::ColumnCalculator::ComputedColumn

Inherits:
Object
  • Object
show all
Defined in:
lib/transformers/column_calculator.rb

Constant Summary collapse

COUNTERS =
{
  :next => lambda {|val|
    return val.succ if val.respond_to? :succ
    return val + 1
  }
}

Instance Method Summary collapse

Constructor Details

#initialize(name, reset_exp, options = {}) ⇒ ComputedColumn

Returns a new instance of ComputedColumn.



120
121
122
123
124
125
126
127
# File 'lib/transformers/column_calculator.rb', line 120

def initialize(name, reset_exp, options = {})
  @name = name
  @reset_exp = reset_exp
  @reset_when = options[:reset_when]
  @count_when = options[:count_when]
  @count_by = options[:count_by]
  @current_value = nil
end

Instance Method Details

#evaluate(*args) ⇒ Object



129
130
131
132
133
134
135
# File 'lib/transformers/column_calculator.rb', line 129

def evaluate(*args)
  if @reset_when.bool_eval(*args)
    @current_value = @reset_exp.evaluate(*args)
  end
  next_val! if @count_when.bool_eval(*args)
  return @current_value
end