Class: Atom::Links

Inherits:
Array
  • Object
show all
Includes:
Enumerable
Defined in:
lib/atom.rb

Overview

Links provides an Array of Link objects belonging to either a Feed or an Entry.

Some additional methods to get specific types of links are provided.

References

See also www.atomenabled.org/developers/syndication/atom-format-spec.php#element.link for details on link selection and link attributes.

Instance Method Summary collapse

Constructor Details

#initializeLinks

Initialize an empty Links array.



653
654
655
# File 'lib/atom.rb', line 653

def initialize
  super([])
end

Instance Method Details

#alternate(type = nil) ⇒ Object

Get the alternate.

Returns the first link with rel == ‘alternate’ that matches the given type.



660
661
662
663
664
665
666
# File 'lib/atom.rb', line 660

def alternate(type = nil)
  detect { |link|
    (link.rel.nil? || link.rel == Link::Rel::ALTERNATE) && (type.nil? || type == link.type) && (link.hreflang.nil?)
  } || detect { |link|
    (link.rel.nil? || link.rel == Link::Rel::ALTERNATE) && (type.nil? || type == link.type)
  }
end

#alternatesObject

Get all alternates.



669
670
671
# File 'lib/atom.rb', line 669

def alternates
  select { |link| link.rel.nil? || link.rel == Link::Rel::ALTERNATE }
end

Gets the edit link.

This is the link which can be used for posting updates to an item using the Atom Publishing Protocol.



720
721
722
# File 'lib/atom.rb', line 720

def edit_link
  detect { |link| link.rel == 'edit' }
end

#enclosuresObject

Gets all links with rel == ‘enclosure’



684
685
686
# File 'lib/atom.rb', line 684

def enclosures
  select { |link| link.rel == Link::Rel::ENCLOSURE }
end

#first_pageObject

Gets the link with rel == ‘first’.

This is defined as the first page in a pagination set.



691
692
693
# File 'lib/atom.rb', line 691

def first_page
  detect { |link| link.rel == Link::Rel::FIRST }
end

#last_pageObject

Gets the link with rel == ‘last’.

This is defined as the last page in a pagination set.



698
699
700
# File 'lib/atom.rb', line 698

def last_page
  detect { |link| link.rel == Link::Rel::LAST }
end

#next_pageObject

Gets the link with rel == ‘next’.

This is defined as the next page in a pagination set.



705
706
707
# File 'lib/atom.rb', line 705

def next_page
  detect { |link| link.rel == Link::Rel::NEXT }
end

#prev_pageObject

Gets the link with rel == ‘prev’.

This is defined as the previous page in a pagination set.



712
713
714
# File 'lib/atom.rb', line 712

def prev_page
  detect { |link| link.rel == Link::Rel::PREVIOUS }
end

#selfObject

Gets the self link.



674
675
676
# File 'lib/atom.rb', line 674

def self
  detect { |link| link.rel == Link::Rel::SELF }
end

#viaObject

Gets the via link.



679
680
681
# File 'lib/atom.rb', line 679

def via
  detect { |link| link.rel == Link::Rel::VIA }
end