Revision: 42809
Updated Code
at March 10, 2011 23:04 by Shamaoke
Updated Code
# encoding = utf-8 # Lib module ObjectExtensions def execute(&block) Extension.new.execute(&block) end end class Parent @@config = [] end class Extension < Parent def execute(&block) self.instance_eval(&block) end def one; puts @@config[0] end def two; puts @@config[1] end def three; puts @@config[2] end end Object.__send__(:include, ObjectExtensions) class Config < Parent class << self def init yield self end def one @@config << 'one' end def two @@config << 'two' end def three @@config << 'three' end end end # Configurating Config.init do |c| c.one #=> set @@config[0] to 'one' c.two #=> set @@config[1] to 'two' c.three #=> set @@config[2] to 'three' end # Usage execute do one #=> one two #=> two three #=> three end
Revision: 42808
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 10, 2011 23:01 by Shamaoke
Initial Code
# encoding = utf-8 # Lib module ObjectExtensions def execute(&block) Extension.new.execute(&block) end end class Parent @@config = [] end class Extension < Parent def execute(&block) self.instance_eval(&block) end def one; puts @@config[0] end def two; puts @@config[1] end def three; puts @@config[2] end end Object.__send__(:include, ObjectExtensions) class Config < Parent class << self def init yield self end def one @@config << 'one' end def two @@config << 'two' end def three @@config << 'three' end end end # Configurating Config.init do |c| c.one c.two c.three end # Usage execute do one two three end
Initial URL
Initial Description
Initial Title
Configure some behaviour through a separete configuration class
Initial Tags
class, ruby
Initial Language
Ruby