Sha256: abf212b225e6fa859e44b23ba4252267c7f5e71aa690cabfc5c087e5a66e0a12
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
module ApiNavigator # 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
api_navigator-0.0.1 | lib/api_navigator/curie.rb |