Sha256: 82b7691a79a5805b08bbae3cc8be9de75115ce1470ca1ae3791d770033ac3b2a
Contents?: true
Size: 1013 Bytes
Versions: 2
Compression:
Stored size: 1013 Bytes
Contents
require 'active_support/concern' require 'frenetic/hypermedia_link_set' class Frenetic module HalLinked extend ActiveSupport::Concern def links @raw_attributes.fetch('_links', {}) end def member_url(params = {}) resource = @resource_type || self.class.to_s.demodulize.underscore return self.class.member_url(params) if links.empty? link = links[resource] || links['self'] fail MissingResourceUrl.new(resource) if !link HypermediaLinkSet.new(link).href params end module ClassMethods def links api.description['_links'] end def member_url(params = {}) link = links[namespace] fail MissingResourceUrl.new(namespace) if !link HypermediaLinkSet.new(link).href(params) end def collection_url(*params) link = links[namespace.pluralize] fail MissingResourceUrl.new(namespace.pluralize) if !link HypermediaLinkSet.new(link).href(*params) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
frenetic-3.0.1 | lib/frenetic/concerns/hal_linked.rb |
frenetic-3.0.0 | lib/frenetic/concerns/hal_linked.rb |