Module: Monkey::Ext::ExtDSL

Defined in:
lib/monkey/ext.rb

Instance Method Summary collapse

Instance Method Details

#core_class(klass = nil) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/monkey/ext.rb', line 6

def core_class(klass = nil)
  if klass
    @core_class = klass
    klass.send :include, self
  end
  return @core_class
end

#expects(*list) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/monkey/ext.rb', line 14

def expects(*list)
  list.each do |name|
    unless instance_method name
      # Note: Ruby < 1.8.7 does not support { |*a, &b| } syntax.
      class_eval "def #{name}(*a, &b); Monkey::Backend.call(#{core_class.inspect}, #{name.to_s.inspect}, *a, &b); end"
    end
  end
end