class SpiffyStoresAPI::Base

Public Class Methods

activate_session(session) click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 53
def activate_session(session)
  raise InvalidSessionError.new("Session cannot be nil") if session.nil?
  self.site = session.site
  self.headers.merge!('Authorization' => "Bearer #{session.token}")
end
clear_session() click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 59
def clear_session
  self.site = nil
  self.headers.delete('Authorization')
end
headers() click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 32
def headers
  if _headers_defined?
    _headers
  elsif superclass != Object && superclass.headers
    superclass.headers
  else
    _headers ||= {}
  end
end
init_prefix(resource) click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 64
def init_prefix(resource)
  init_prefix_explicit(resource.to_s.pluralize, "#{resource}_id")
end
init_prefix_explicit(resource_type, resource_id) click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 68
def init_prefix_explicit(resource_type, resource_id)
  self.prefix = "/api/#{resource_type}/:#{resource_id}/"

  define_method resource_id.to_sym do
    @prefix_options[resource_id]
  end
end

Public Instance Methods

as_json(options = nil) click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 20
def as_json(options = nil)
  root = options[:root] if options.try(:key?, :root)
  if include_root_in_json
    root = self.class.model_name.element if root == true
    { root => serializable_hash(options) }
  else
    serializable_hash(options)
  end
end
encode(options = {}) click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 13
def encode(options = {})
  same = dup
  same.attributes = {self.class.element_name => same.attributes} if self.class.format.extension == 'json'

  same.send("to_#{self.class.format.extension}", options)
end
persisted?() click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 77
def persisted?
  !id.nil?
end

Private Instance Methods

only_id() click to toggle source
# File lib/spiffy_stores_api/resources/base.rb, line 82
def only_id
  encode(:only => :id, :include => [], :methods => [])
end