Sha256: 92504cd8d2ae5d0ed0ff38d130fa45745ef04cc585a239313179f2aa85ca211e
Contents?: true
Size: 960 Bytes
Versions: 2
Compression:
Stored size: 960 Bytes
Contents
require 'frenetic/concerns/hal_linked' require 'frenetic/concerns/collection_rest_methods' class Frenetic class ResourceCollection < Delegator include HalLinked include CollectionRestMethods def initialize(resource, params = {}) @resource_class = resource @resources = [] @params = params || {} extract_resources! end def resource_type @resource_type ||= @resource_class.to_s.demodulize.underscore end def collection_key @collection_key ||= resource_type.pluralize end def __getobj__ @resources end def __setobj__ @resources end def api @resources.first.api end private def extract_resources! @resources = embedded_collection.collect do |resource| @resource_class.new resource end end def embedded_collection @params.fetch('_embedded', {}).fetch(collection_key, []) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
frenetic-2.0.0 | lib/frenetic/resource_collection.rb |
frenetic-1.0.0 | lib/frenetic/resource_collection.rb |