class Object

Public Instance Methods

deco(meth, &user_block) click to toggle source
# File lib/deco.rb, line 2
def deco(meth, &user_block)
  m = instance_method(meth)
  
  Thread.current[:__deco_stack__] ||= []
  
  define_method(meth) do |*args, &block|
    Thread.current[:__deco_stack__].push(m.bind(self))
    user_block.call *args, &block
  end
end
deco_super(*args, &block) click to toggle source
# File lib/deco.rb, line 13
def deco_super(*args, &block)
  Thread.current[:__deco_stack__].pop.call(*args, &block)
end