Return to Snippet

Revision: 42540
at March 6, 2011 23:25 by Shamaoke


Initial Code
# encoding: utf-8

module ObjectExtensions
  def execute(&block)
    Extension.new.execute(&block)
  end
end

class Extension
  def execute(&block)
    self.instance_eval(&block)
  end

  def one;    puts 'one'   end
  def two;    puts 'two'   end
  def three;  puts 'three' end
end

Object.__send__(:include, ObjectExtensions)

one   rescue puts 'boom!'       #=> boom!
two   rescue puts 'boom too!'   #=> boom too!
three rescue puts 'boom three!' #=> boom three!

execute do
  one   #=> one
  two   #=> two
  three #=> three
  four rescue puts 'boom four!' #=> boom four!
end

Initial URL

                                

Initial Description

                                

Initial Title
Execute an instance method of Object and call in its block instance methods of another object

Initial Tags
ruby

Initial Language
Ruby