module Appfirst::Collection

Public Class Methods

included(klass) click to toggle source
# File lib/appfirst/collection.rb, line 2
def self.included(klass)
  klass.attribute :next_link
  klass.attribute :prev_link
  klass.attribute :last_link
  klass.attribute :total_count
  klass.attribute :url
  klass.send(:extend, Appfirst::Collection::Attributes)
end

Public Instance Methods

==(comparison_object) click to toggle source
# File lib/appfirst/collection.rb, line 46
def ==(comparison_object)
  comparison_object.equal?(self) ||
    (comparison_object.is_a?(self.class) &&
     comparison_object.map(&:identity) == self.map(&:identity))
end
all(params={}) click to toggle source
# File lib/appfirst/collection.rb, line 52
def all(params={})
  params["url"] ||= self.url

  response = self.connection.send(self.collection_request, params)
  load_page(response)
end
collection_request() click to toggle source
# File lib/appfirst/collection.rb, line 42
def collection_request
  self.class.instance_variable_get(:@collection_request)
end
collection_root() click to toggle source
# File lib/appfirst/collection.rb, line 38
def collection_root
  self.class.instance_variable_get(:@collection_root)
end
create!(*args) click to toggle source
# File lib/appfirst/collection.rb, line 15
def create!(*args)
  model = self.new(*args)
  model.save!
end
get(id) click to toggle source
# File lib/appfirst/collection.rb, line 28
def get(id)
  if data = connection.send(self.model_request, "id" => id).body[self.model_root]
    new(data)
  else
    nil
  end
rescue Appfirst::Response::NotFound
  nil
end
model_request() click to toggle source
# File lib/appfirst/collection.rb, line 24
def model_request
  self.class.model_request
end
model_root() click to toggle source
# File lib/appfirst/collection.rb, line 20
def model_root
  self.class.model_root
end