49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/magicshelf/executionpipe.rb', line 49
def execute_(i_proc)
procedure = @procedures[i_proc]
previous_procedure = @procedures[i_proc-1]
if procedure.nil?
return
end
if not procedure.command_obj.nil?
if not previous_procedure.nil?
if not previous_procedure.command_obj.nil?
procedure.map_params.each_pair do |param_key_recv, param_keys|
param_keys.each do |param_key|
procedure.command_obj.instance_variable_set('@'+param_key.to_s, previous_procedure.command_obj.instance_variable_get('@'+param_key_recv.to_s))
end
end
else
procedure.map_params.each_pair do |param_key_recv, param_keys|
param_keys.each do |param_key|
procedure.command_obj.instance_variable_set('@'+param_key.to_s, previous_procedure.params[param_key_recv])
end
end
end
end
procedure.command_obj.enter {
procedure.command_obj.process
self.execute_(i_proc+1)
}
elsif not procedure.proc.nil? or not procedure.proc_withblock.nil?
procedure.params = {}
if not previous_procedure.command_obj.nil?
procedure.map_params.each_pair do |param_key_recv, param_keys|
param_keys.each do |param_key|
procedure.params[param_key] = previous_procedure.command_obj.instance_variable_get('@'+param_key_recv.to_s)
end
end
else
procedure.map_params.each_pair do |param_key_recv, param_keys|
param_keys.each do |param_key|
procedure.params[param_key] = previous_procedure.params[param_key_recv]
end
end
end
if not procedure.proc.nil?
procedure.proc.call(procedure.params)
self.execute_(i_proc+1)
else
procedure.proc_withblock.call(procedure.params) do
self.execute_(i_proc+1)
end
end
end
end
|