def call(data = nil, options = nil)
      m = options && options[:method]
      if m && !@agent.allow_undefined_methods? && !@available_methods.include?(m == :head ? :get : m)
        raise ArgumentError, "method #{m.inspect} is not available: #{@available_methods.to_a.inspect}"
      end

      @agent.call m || @method, @href_template, data, options
    end
def call(data = nil, options = nil)
      m = options && options[:method]
      if m && !@agent.allow_undefined_methods? && !@available_methods.include?(m == :head ? :get : m)
        raise ArgumentError, "method #{m.inspect} is not available: #{@available_methods.to_a.inspect}"
      end

      @agent.call m || @method, @href_template, data, options
    end
Public: Makes an API request with the curent Relation.

 data    - The Optional Hash or Resource body to be sent.  :get or :head
           requests can have no body, so this can be the options Hash
           instead.
 options - Hash of option to configure the API request.
           :headers - Hash of API headers to set.
           :query   - Hash of URL query params to set.
           :method  - Symbol HTTP method.

 Raises ArgumentError if the :method value is not in @available_methods.
 Returns a Sawyer::Response.