Module: Eva::Space

Included in:
Object
Defined in:
lib/eva/space.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#namespace(name, methods = {}) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/eva/space.rb', line 8

def namespace(name, methods={})
  mod = gen_const(name, Module.new)
  mod.extend mod
  mod.extend ClassMethods
  methods.each { |name, block| gen_methods(mod, name, block) }
  mod
end

#objectspace(name, methods = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/eva/space.rb', line 16

def objectspace(name, methods={})
  if Hash === name
    (name, superclass), *methods = *name.to_a
  else
    superclass = EvaObject
  end

  klass = gen_const(name, Class.new(superclass))
  methods.each { |name, block| gen_methods(klass, name, block) }
  klass
end