You have methods you want to handle dynamically without the pain of debug- gingmethod_missing.
Use dynamic method definition to define the necessary methods.
class Decorator def initialize(subject) @subject = subject end def method_missing(sym, *args, &block) @subject.send sym, *args, &block end end
class Decorator def initialize(subject) subject.public_methods(false).each do |meth| (class << self; self; end).class_eval do define_method meth do |*args| subject.send meth, *args end end end end end