# My own version of the forwardable mixin in with the def_delegator # However it must be used with extend, not include module Forwardable # Forwards methods to the given named instance def def_delegator(obj_name, name, alias_name = nil) alias_name ||= name define_method(alias_name) do |*args| obj = self.instance_variable_get(obj_name) obj.send(name, *args) end end end