Class: GroongaDelta::Mapping::ExpressionEvaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/groonga-delta/mapping.rb

Defined Under Namespace

Classes: Context

Instance Method Summary collapse

Constructor Details

#initialize(source_record) ⇒ ExpressionEvaluator

Returns a new instance of ExpressionEvaluator.



298
299
300
301
302
303
304
305
306
307
# File 'lib/groonga-delta/mapping.rb', line 298

def initialize(source_record)
  @context = Context.new
  context_singleton_class =
    Kernel.instance_method(:singleton_class).bind(@context).call
  source_record.each do |key, value|
    context_singleton_class.define_method(key) do
      value
    end
  end
end

Instance Method Details

#evaluate(expression) ⇒ Object



309
310
311
# File 'lib/groonga-delta/mapping.rb', line 309

def evaluate(expression)
  @context.instance_eval(expression, __FILE__, __LINE__)
end