Class: Wongi::Engine::DSL::Action::TraceAction

Inherits:
BaseAction
  • Object
show all
Defined in:
lib/wongi-engine/dsl/action/trace_action.rb

Defined Under Namespace

Classes: DefaultTracer

Instance Attribute Summary collapse

Attributes inherited from BaseAction

#name, #production, #rete, #rule

Instance Method Summary collapse

Methods inherited from BaseAction

#overlay

Methods included from CoreExt

included

Constructor Details

#initialize(opts = {}) ⇒ TraceAction

Returns a new instance of TraceAction.



25
26
27
28
29
30
31
32
33
# File 'lib/wongi-engine/dsl/action/trace_action.rb', line 25

def initialize(opts = {})
  super()
  %i[generation values tracer tracer_class io].each do |option|
    instance_variable_set "@#{option}", opts[option] if opts.key? option
  end
  @io ||= $stdout
  @tracer ||= (@tracer_class || DefaultTracer).new
  @tracer.action = self
end

Instance Attribute Details

#ioObject (readonly)

Returns the value of attribute io.



21
22
23
# File 'lib/wongi-engine/dsl/action/trace_action.rb', line 21

def io
  @io
end

Instance Method Details

#execute(token) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/wongi-engine/dsl/action/trace_action.rb', line 39

def execute(token)
  production.tracer = self
  if values?
    trace action: self, token: token
  else
    trace action: self
  end
end

#trace(args) ⇒ Object



35
36
37
# File 'lib/wongi-engine/dsl/action/trace_action.rb', line 35

def trace(args)
  @tracer.trace args
end