7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/q-language/methods/dynamic.rb', line 7
def def (token, &block)
env = self.env::replicate
value.define_singleton_method(:"__Q_#{token}__") do |object = nil|
env::frame(self) { block.call(object, env) }
end
env = self.env::replicate
env.max_nodes = self.env.max_method_nodes
value.define_singleton_method(token) do |object = nil|
begin
env::frame(self) { block.call(object, env) }
rescue Q_Environment::TooManyNodes
nil
end
end
value
end
|