Sha256: 0a4e229a0df4d36c631d305b83c89f02834748fb58cca3546c8814c9a7ac0cd0
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
module Transcriber class Resource class Relation module Response def to_resource(parent) included = parent.__send__(name) return {} unless visible?(parent) and included {name => resource_from_included(included)} end def to_relation(parent) {rel: name, href: href(parent)} end private def relation_name(parent) relation = parent.class.relations.find do |key| key.resource_class == self.resource_class end relation.name or fail end def resource_from_included(included) options = {root: false} one? ? included.resource(options) : included.map {|r| r.resource(options)} end def href(parent) id_key = parent.class.id_key.name has? ? "#{Transcriber.host}/#{parent.class.resource_name}/#{parent.send(id_key)}/#{relation_name(parent)}" : "#{Transcriber.host}/#{relation_name(parent).to_s.pluralize}/#{parent.send(id_key)}/#{parent.class.resource_name}" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
transcriber-0.0.26 | lib/transcriber/resource/key/relation/response.rb |