Sha256: a3c419c137f1949efa39e2de4aa5effc2753c746e6019651adfe4dece95fcbce
Contents?: true
Size: 988 Bytes
Versions: 2
Compression:
Stored size: 988 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, attributes = {}) @resource_class = resource @resources = [] @raw_attributes = (attributes || {}).stringify_keys 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 @raw_attributes.fetch('_embedded', {}).fetch(collection_key, []) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
frenetic-3.0.1 | lib/frenetic/resource_collection.rb |
frenetic-3.0.0 | lib/frenetic/resource_collection.rb |