Sha256: 22d5942404def7b73aa7f1c1a8774395ed8dad57a1c267f91a750234282bf8d0
Contents?: true
Size: 1.23 KB
Versions: 6
Compression:
Stored size: 1.23 KB
Contents
module Hyperclient # Internal: Curies are named tokens that you can define in the document and use # to express curie relation URIs in a friendlier, more compact fashion. # class Curie # Public: Initializes a new Curie. # # curie_hash - The String with the URI of the curie. # entry_point - The EntryPoint object to inject the configuration. def initialize(curie_hash, entry_point) @curie_hash = curie_hash @entry_point = entry_point end # Public: Indicates if the curie is an URITemplate or a regular URI. # # Returns true if it is templated. # Returns false if it not templated. def templated? !!@curie_hash['templated'] end # Public: Returns the name property of the Curie. def name @curie_hash['name'] end # Public: Returns the href property of the Curie. def href @curie_hash['href'] end def inspect "#<#{self.class.name} #{@curie_hash}>" end # Public: Expands the Curie when is templated with the given variables. # # rel - The String rel to expand. # # Returns a new expanded url. def expand(rel) return rel unless rel && templated? href.gsub('{rel}', rel) if href end end end
Version data entries
6 entries across 6 versions & 1 rubygems