Method: Object#block_instance_eval
- Defined in:
- lib/poolparty/core/object.rb
#block_instance_eval(*args, &block) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/poolparty/core/object.rb', line 50 def block_instance_eval(*args, &block) return instance_eval(*args,&block) unless block && !block.arity.zero? old_method = (self.class.instance_method(:__) rescue nil) self.class.send(:define_method, :__, &block) block_method = self.class.instance_method(:__) if old_method self.class.send(:define_method, :__, old_method) else self.class.send(:remove_method, :__) end block_method.bind(self).call(*args) end |