def method_missing(name, *args, &block)
      super unless respond_to_missing?(name)
      # Send self as the delegator
      @__delegated_object__.__send__(name, self, *args, &block)
    end
def method_missing(name, *args, &block)
      super unless respond_to_missing?(name)
      # Send self as the delegator
      @__delegated_object__.__send__(name, self, *args, &block)
    end
Create a wrapper around a delegated object
 @api public
 @param obj [Delegated] delegated object
 Relay methods to `@__delegated_object__` if they exist
 @api private
 @raise [NoMethodError] if the delegated object does not respond to
   the method being called
 @param name [Symbol] method name
 @param args [Array<Object>] arguments to method
 @yield to method call
 @return result of method call