Class: Frenetic::HypermediaLinkSet

Inherits:
Delegator
  • Object
show all
Defined in:
lib/frenetic/hypermedia_link_set.rb

Instance Method Summary collapse

Constructor Details

#initialize(link_set = []) ⇒ HypermediaLinkSet

Returns a new instance of HypermediaLinkSet.



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/frenetic/hypermedia_link_set.rb', line 8

def initialize(link_set = [])
  link_set = [link_set] unless link_set.is_a? Array

  @link_set = link_set.map do |link|
    if link.is_a? HypermediaLink
      link
    else
      HypermediaLink.new link
    end
  end
end

Instance Method Details

#[](relation) ⇒ Object



26
27
28
# File 'lib/frenetic/hypermedia_link_set.rb', line 26

def [](relation)
  @link_set.find { |link| link.rel == relation.to_s }
end

#__getobj__Object



36
37
38
# File 'lib/frenetic/hypermedia_link_set.rb', line 36

def __getobj__
  @link_set
end


30
31
32
33
34
# File 'lib/frenetic/hypermedia_link_set.rb', line 30

def find_relevant_link(tmpl_vars)
  @link_set.find do |link|
    link.expandable?(tmpl_vars)
  end || fail(Frenetic::MissingRelevantLink.new(tmpl_vars, @link_set))
end

#href(tmpl_vars = {}) ⇒ Object



20
21
22
23
24
# File 'lib/frenetic/hypermedia_link_set.rb', line 20

def href(tmpl_vars = {})
  return @link_set.first.href if tmpl_vars.blank?
  link = find_relevant_link(tmpl_vars)
  link && link.href(tmpl_vars)
end