def head(template_values)
      raise FamilySearch::Error::MethodNotAllowed unless allow.include?('head')
      template_values = validate_values(template_values)
      t = Addressable::Template.new(@template)
      url = t.expand(template_values).to_s
      @client.head url
    end
def head(template_values)
      raise FamilySearch::Error::MethodNotAllowed unless allow.include?('head')
      template_values = validate_values(template_values)
      t = Addressable::Template.new(@template)
      url = t.expand(template_values).to_s
      @client.head url
    end
Calls HTTP HEAD on the URL template. It takes the +template_values+ hash and merges the values into the template.

 A template will contain a URL like this:
   https://sandbox.familysearch.org/platform/tree/persons-with-relationships{?access_token,person}
 or
   https://sandbox.familysearch.org/platform/tree/persons/{pid}/matches{?access_token}

 The {?person} type attributes in the first example will be passed as querystring parameters. These will automatically be URL Encoded
 by the underlying Faraday library that handles the HTTP request.

 The {pid} type attibutes will simply be substituted into the URL.

 *Note*: The +access_token+ parameter doesn't need to be passed here. This should be handled by the FamilySearch::Client's
 Authorization header.

 *Args*    :
 - +template_values+: A Hash object containing the values for the items in the URL template. For example, if the URL is:
     https://sandbox.familysearch.org/platform/tree/persons-with-relationships{?access_token,person}
   then you would pass a hash like this:
     :person => 'KWQS-BBQ'
   or
     'person' => 'KWQS-BBQ'
 *Returns* :
 - +Faraday::Response+ object. This object contains methods +body+, +headers+, and +status+. +body+ should contain a Hash of the
   parsed result of the request.
 *Raises*  :
 - +FamilySearch::Error::MethodNotAllowed+: if you call +head+ for a template that doesn't allow HEAD method.