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.



647
648
649
# File 'lib/atom.rb', line 647

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.



654
655
656
657
658
659
660
# File 'lib/atom.rb', line 654

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.



663
664
665
# File 'lib/atom.rb', line 663

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.



714
715
716
# File 'lib/atom.rb', line 714

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

#enclosuresObject

Gets all links with rel == ‘enclosure’



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

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.



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

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.



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

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.



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

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.



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

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

#selfObject

Gets the self link.



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

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

#viaObject

Gets the via link.



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

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