Class: Leadlight::LinkTemplate
- Defined in:
- lib/leadlight/link_template.rb
Constant Summary
Constants inherited from Link
Instance Attribute Summary
Attributes inherited from Link
#aliases, #href, #rel, #rev, #service, #title
Instance Method Summary collapse
Methods inherited from Link
Constructor Details
This class inherits a constructor from Leadlight::Link
Instance Method Details
#expand(args) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/leadlight/link_template.rb', line 18 def (args) mapping = args.last.is_a?(Hash) ? args.pop : {} mapping = mapping.inject({}) { |result, (k,v)| result.merge!(k.to_s => v) } mapping = href_template.variables.inject(mapping) do |mapping, var| mapping.merge!(var => args.shift) unless args.empty? mapping end extra_keys = (mapping.keys.map(&:to_s) - href_template.variables) extra_params = extra_keys.inject({}) do |params, key| params[key] = mapping.delete(key) params end assert_all_variables_mapped(href_template, mapping) args.push extra_params unless extra_params.empty? href_template.(mapping).to_s end |
#href_template ⇒ Object
7 8 9 |
# File 'lib/leadlight/link_template.rb', line 7 def href_template @href_template ||= Addressable::Template.new(href.to_s) end |