Module: HALPresenter::Links

Includes:
SuperInit
Included in:
HALPresenter, Collection::Properties
Defined in:
lib/hal_presenter/links.rb

Defined Under Namespace

Classes: Link

Instance Method Summary collapse

Instance Method Details



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/hal_presenter/links.rb', line 59

def link(rel, value = nil, **kwargs, &block)
  if value.nil? && !block_given?
    raise 'link must be called with non nil value or be given a block'
  end

  kwargs[:context] ||= self
  links.delete_if { |link| link.rel == rel }
  Link.new(rel, value, **kwargs, &block).tap do |link|
    links << link
  end
end