Просмотр сниппета

DeVoid: 18 Января 2010 23:39:00

Динамическое создание методов класса

Код позволяет динамически создавать методы для классов

Теги: ruby class define_method

#!/usr/bin/env ruby
 
class Hero
  def speak
    puts 'Invaders must die!'
  end
 
  def create_method(name, &block)
    self.class.send(:define_method, name, &block)
  end
 
end
 
superman = Hero.new
superman.speak
 
begin superman.die
rescue => e
  puts e.message
end
 
superman.create_method('die') do
  puts 'Good Bye!'
end
superman.die
 
#Invaders must die!
#undefined method `die' for #<Hero:0xb77c35f0>
#Good Bye!
 

  • Digg it!
  • Delicious
  • +МоёМесто.ru
  • Добавить страницу к Мистеру Вонгу
  • Добавить страницу к Мистеру Вонгу

Комментарии КОММЕНТАРИИ

Комментариев еще нет.

Зарегистрируйтесь или выполните Вход для того чтобы оставлять комментарии