Method: Monkey::Ext::ExtDSL#core_class

Defined in:
lib/monkey/ext.rb

#core_class(klass = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/monkey/ext.rb', line 16

def core_class(klass = nil)
  if klass
    @core_class = klass
    klass.send :include, self
    self::ExtClassMethods.extend ClassDsl
    self::ExtClassMethods.core_class @core_class
    @core_class.class_eval <<-EOS
      def method_missing(meth, *args, &blk)
        return super if Monkey::Backend.setup?
        Monkey::Backend.setup
        __send__(meth, *args, &blk)
      end
    EOS
    propagate_include
  end
  @core_class
end