Class: Module

Inherits:
Object
  • Object
show all
Defined in:
lib/magic_metaclass/module.rb

Instance Method Summary collapse

Instance Method Details

#const_missing(class_id) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/magic_metaclass/module.rb', line 4

def const_missing(class_id)    
  begin
    return normal_const_missing(class_id)
  rescue
  end
  class_name = class_id.to_s
  unless class_name =~ /\A([A-Za-z_]+)(Metaclass|Class|Eigenclass|Eigen)\Z/
    raise NameError.new("uninitialized constant #{class_id}")
  end
  base_class_name = $1
  begin
    base_class = self.const_get base_class_name
  rescue
    raise NameError.new("uninitialized constant #{class_id}")
  end
  metaclass = class << base_class; self; end
  self.const_set class_name, metaclass
end

#normal_const_missingObject



2
# File 'lib/magic_metaclass/module.rb', line 2

alias :normal_const_missing :const_missing