Class: QModule

Inherits:
QObject
  • Object
show all
Defined in:
lib/q-language/methods/module.rb

Overview

Copyright © 2010-2011 Jesse Sielaff

Direct Known Subclasses

QClass

Instance Method Summary collapse

Instance Method Details

#def(token, &block) ⇒ Object



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/module.rb', line 7

def def (token, &block)
  env = self.env::replicate
  
  value.send(:define_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.send(:define_method, token) do |object = nil|
    begin
      env::frame(self) { block.call(object, env) }
    rescue Q_Environment::TooManyNodes
      nil
    end
  end
  
  value
end

#include(module_1) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/q-language/methods/module.rb', line 28

def include (module_1)
  value.send(:include, module_1) if module_1.instance_of?(Module)
  value
rescue ArgumentError
  # Cyclic include
  value
end

#module?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/q-language/methods/module.rb', line 36

def module?
  value
end