module LHS::Item::Destroy

Public Instance Methods

destroy(options = {}) click to toggle source
# File lib/lhs/concerns/item/destroy.rb, line 10
def destroy(options = {})
  options ||= {}
  options = options.merge(method: :delete)
  data = _data._raw.dup
  url = url_for_deletion!(options, data)
  options = options.merge(url: url)
  _data._request = _data.class.request(options)._request
  _data
end

Private Instance Methods

endpoint_for_deletion(data, options) click to toggle source
# File lib/lhs/concerns/item/destroy.rb, line 34
def endpoint_for_deletion(data, options)
  record.find_endpoint(merge_data_with_options(data, options))
end
url_for_deletion!(options, data) click to toggle source
# File lib/lhs/concerns/item/destroy.rb, line 22
def url_for_deletion!(options, data)
  return href if href.present?
  endpoint = endpoint_for_deletion(data, options)
  endpoint.compile(
    merge_data_with_options(data, options)
  ).tap do
    endpoint.remove_interpolated_params!(data)
    endpoint.remove_interpolated_params!(options.fetch(:params, {}))
    options.merge!(endpoint.options.merge(options)) if endpoint.options
  end
end