Class: Wongi::Engine::DSL::Action::SimpleAction
- Inherits:
-
BaseAction
- Object
- BaseAction
- Wongi::Engine::DSL::Action::SimpleAction
show all
- Defined in:
- lib/wongi-engine/dsl/action/simple_action.rb
Instance Attribute Summary
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(action = nil, *args, &block) ⇒ SimpleAction
Returns a new instance of SimpleAction.
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/wongi-engine/dsl/action/simple_action.rb', line 4
def initialize(action = nil, *args, &block)
super()
@args = args
case action
when Class
@action = @deaction = @reaction = action.new(*args, &block)
when Hash
@action = instance_or_proc action[:activate]
@deaction = instance_or_proc action[:deactivate]
@reaction = instance_or_proc action[:reactivate]
end
@action ||= block
end
|
Instance Method Details
#deexecute(token) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/wongi-engine/dsl/action/simple_action.rb', line 30
def deexecute(token)
return unless @deaction
if @deaction.is_a?(Proc) || @deaction.respond_to?(:to_proc)
rete.instance_exec token, &@deaction
elsif @deaction.respond_to? :call
@deaction.call token
elsif @deaction.respond_to? :deexecute
@deaction.deexecute token
end
end
|
#execute(token) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/wongi-engine/dsl/action/simple_action.rb', line 18
def execute(token)
return unless @action
if @action.is_a?(Proc) || @action.respond_to?(:to_proc)
rete.instance_exec token, &@action
elsif @action.respond_to? :call
@action.call token
elsif @action.respond_to? :execute
@action.execute token
end
end
|
#instance_or_proc(thing) ⇒ Object
54
55
56
57
58
59
60
61
|
# File 'lib/wongi-engine/dsl/action/simple_action.rb', line 54
def instance_or_proc(thing)
case thing
when Class
thing.new
when Proc
thing
end
end
|
#reexecute(token, newtoken) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/wongi-engine/dsl/action/simple_action.rb', line 42
def reexecute(token, newtoken)
return unless @reaction
if @reaction.is_a?(Proc) || @reaction.respond_to?(:to_proc)
rete.instance_exec token, newtoken, &@reaction
elsif @reaction.respond_to? :call
@reaction.call token, newtoken
elsif @reaction.respond_to? :reexecute
@reaction.reexecute token, newtoken
end
end
|