module Monkey::Ext::Object
Public Instance Methods
define_singleton_method(name, &block)
click to toggle source
# File lib/monkey/ext/object.rb, line 32 def define_singleton_method(name, &block) singleton_class_eval { define_method(name, &block) } end
instance_yield(block = nil) { |self| ... }
click to toggle source
Behaves like instance_eval or yield depending on whether a block takes an argument or not.
class Foo define_method(:foo) { 42 } end Foo.new.instance_yield { foo } # => 42 Foo.new.instance_yield { |c| c.foo } # => 42
Also, you can pass a proc directly:
block = proc { } instance_yield(block)
# File lib/monkey/ext/object.rb, line 21 def instance_yield(block = nil, &alternate_block) raise ArgumentError, "too many blocks given" if block && alternate_block block ||= alternate_block raise LocalJumpError, "no block given (yield)" unless block block.arity > 0 ? yield(self) : instance_eval(&block) end
metaclass()
click to toggle source
# File lib/monkey/ext/object.rb, line 36 def metaclass warn "DEPRECATION WARNING: #metaclass will be removed, use #singleton_class (#{caller})" singleton_class end
metaclass_eval(&block)
click to toggle source
# File lib/monkey/ext/object.rb, line 41 def metaclass_eval(&block) warn "DEPRECATION WARNING: #metaclass_eval will be removed, use #singleton_class_eval (#{caller})" singleton_class_eval(&block) end
singleton_class_eval(&block)
click to toggle source
# File lib/monkey/ext/object.rb, line 28 def singleton_class_eval(&block) singleton_class.class_eval(&block) end