Class: Optimus::Transformers::ColumnCalculator::Evaluatable
- Inherits:
-
Object
- Object
- Optimus::Transformers::ColumnCalculator::Evaluatable
- Defined in:
- lib/transformers/column_calculator.rb
Overview
class ComputedColumn
Instance Method Summary collapse
- #bool_eval(*args) ⇒ Object
- #evaluate(*args) ⇒ Object
-
#initialize(target, parser = nil) ⇒ Evaluatable
constructor
A new instance of Evaluatable.
Constructor Details
#initialize(target, parser = nil) ⇒ Evaluatable
Returns a new instance of Evaluatable.
151 152 153 154 155 156 157 |
# File 'lib/transformers/column_calculator.rb', line 151 def initialize(target, parser = nil) if target.is_a? String @target = parser.parse(target) else @target = target end end |
Instance Method Details
#bool_eval(*args) ⇒ Object
178 179 180 181 182 |
# File 'lib/transformers/column_calculator.rb', line 178 def bool_eval(*args) val = self.evaluate(*args) return false if val == '' return val end |
#evaluate(*args) ⇒ Object
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/transformers/column_calculator.rb', line 159 def evaluate(*args) # Check for magicality if @target == :once @target = false return true end # If we don't have a call method or an evaluate method, just # this as our own default method. if not [:call, :evaluate].any? {|msg| @target.respond_to? msg} return @target end if @target.respond_to? :call row = (args.last || {})[:row] || [] return @target.call(row) else return @target.evaluate(*args) end end |