Sha256: 384001931977f78b6c83979e75f33a4743996904a3d876361cfc34e063458cfd
Contents?: true
Size: 1.22 KB
Versions: 4
Compression:
Stored size: 1.22 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) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
hyperclient-2.0.0 | lib/hyperclient/curie.rb |
hyperclient-1.0.1 | lib/hyperclient/curie.rb |
hyperclient-0.9.3 | lib/hyperclient/curie.rb |
hyperclient-0.9.1 | lib/hyperclient/curie.rb |