#This works: drop_class.class_eval do allowed_methods.each do |am| define_method am do @object.send(am) end end end #This doesn't: drop_class.class_eval { allowed_methods.each { |am| define_method am { @object.send(am) } } }