Class: XlsFunction::Evaluators::VariantEvaluator

Inherits:
Object
  • Object
show all
Includes:
Evaluable
Defined in:
lib/xls_function/evaluators/variant_evaluator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Evaluable

#evaluate, included

Constructor Details

#initialize(name, context) ⇒ VariantEvaluator

Returns a new instance of VariantEvaluator.



8
9
10
11
# File 'lib/xls_function/evaluators/variant_evaluator.rb', line 8

def initialize(name, context)
  @name = name.to_s
  @context = context
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/xls_function/evaluators/variant_evaluator.rb', line 6

def name
  @name
end

Instance Method Details

#evalObject



17
18
19
20
21
# File 'lib/xls_function/evaluators/variant_evaluator.rb', line 17

def eval
  raise ::XlsFunction::Transform::VariantUndefinedError, "name: `#{name}` is undefined" unless variant_context.key?(name)

  variant_context[name]
end

#variant_contextObject



13
14
15
# File 'lib/xls_function/evaluators/variant_evaluator.rb', line 13

def variant_context
  context[:variants]
end