module Her::Model::HTTP::ClassMethods

For each HTTP method, define these class methods:

@example

class User
  include Her::Model
  custom_get :active
end

User.get(:popular) # GET "/users/popular"
User.active # GET "/users/active"

Public Instance Methods

her_api(value = nil)
Alias for: use_api
request(params={}) { |request, request| ... } click to toggle source

Main request wrapper around Her::API. Used to make custom request to the API.

@private

# File lib/her/model/http.rb, line 55
def request(params={})
  request = her_api.request(params)
  if block_given?
    yield request[:parsed_data], request[:response]
  else
    { :parsed_data => request[:parsed_data], :response => request[:response] }
  end
end
use_api(value = nil) click to toggle source

Change which API the model will use to make its HTTP requests

@example

secondary_api = Her::API.new :url => "https://api.example" do |connection|
  connection.use Faraday::Request::UrlEncoded
  connection.use Her::Middleware::DefaultParseJSON
end

class User
  include Her::Model
  use_api secondary_api
end
# File lib/her/model/http.rb, line 37
def use_api(value = nil)
  @_her_use_api ||= begin
    superclass.use_api if superclass.respond_to?(:use_api)
  end

  unless value
    return (@_her_use_api.respond_to? :call) ? @_her_use_api.call : @_her_use_api
  end

  @_her_use_api = value
end
Also aliased as: her_api, uses_api
uses_api(value = nil)
Alias for: use_api