class HalApi::PagedCollection
Attributes
facets[RW]
items[RW]
options[RW]
request[RW]
Public Class Methods
new(items, request=nil, options=nil)
click to toggle source
# File lib/hal_api/paged_collection.rb, line 30 def initialize(items, request=nil, options=nil) self.items = items self.request = request || request_stub self.options = options || {} self.options[:is_root_resource] = true unless (self.options[:is_root_resource] == false) end
representer()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 18 def self.representer representer_class || HalApi::PagedCollectionRepresenter end
Public Instance Methods
cache_key()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 37 def cache_key item_keys = items.inject([]) do |keys, i| keys << i.try(:id) keys << i.try(:updated_at).try(:utc).to_i end key_components = ['c', item_class.model_name.cache_key] key_components << OpenSSL::Digest::MD5.hexdigest(item_keys.join) ActiveSupport::Cache.expand_cache_key(key_components) end
count()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 80 def count items.length end
is_root_resource()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 51 def is_root_resource !!self.options[:is_root_resource] end
item_class()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 59 def item_class options[:item_class] || self.items.first.try(:item_class) || self.items.first.class end
item_decorator()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 63 def item_decorator options[:item_decorator] || "Api::#{item_class.name}Representer".constantize end
parent()
click to toggle source
If this is an embedded collection, the parent will be set here for use in urls
# File lib/hal_api/paged_collection.rb, line 73 def parent rep = options[:parent] return rep unless rep.respond_to?(:becomes) klass = rep.class.try(:base_class) (klass && (klass != rep.class)) ? rep.becomes(klass) : rep end
persisted?()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 26 def persisted? false end
request_stub()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 47 def request_stub OpenStruct.new(params: {}) end
show_curies()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 55 def show_curies is_root_resource && !options[:no_curies] end
to_model()
click to toggle source
# File lib/hal_api/paged_collection.rb, line 22 def to_model self end
url()
click to toggle source
url to use for the self:href, can be a string or proc
# File lib/hal_api/paged_collection.rb, line 68 def url options[:url] end