Class: Atom::Link
Overview
Represents a link in an Atom document.
A link defines a reference from an Atom document to a web resource.
References
See www.atomenabled.org/developers/syndication/atom-format-spec.php#element.link for a description of the different types of links.
Defined Under Namespace
Modules: Rel
Instance Method Summary collapse
- #==(o) ⇒ Object
-
#fetch(options = {}) ⇒ Object
This will fetch the URL referenced by the link.
-
#initialize(o) ⇒ Link
constructor
Create a link.
- #inspect ⇒ Object
- #length=(v) ⇒ Object
- #to_s ⇒ Object
Methods included from Xml::Parseable
#accessor_name, #current_node_is?, included, #next_node_is?, #parse, #to_xml
Constructor Details
#initialize(o) ⇒ Link
Create a link.
o
-
An XML::Reader containing a link element or a Hash of attributes.
747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 |
# File 'lib/atom.rb', line 747 def initialize(o) case o when XML::Reader if current_node_is?(o, 'link') parse(o, :once => true) else raise ArgumentError, "Link created with node other than atom:link: #{o.name}" end when Hash [:href, :rel, :type, :length, :hreflang, :title].each do |attr| self.send("#{attr}=", o[attr]) end else raise ArgumentError, "Don't know how to handle #{o}" end end |
Instance Method Details
#==(o) ⇒ Object
773 774 775 |
# File 'lib/atom.rb', line 773 def ==(o) o.respond_to?(:href) && o.href == self.href end |
#fetch(options = {}) ⇒ Object
This will fetch the URL referenced by the link.
If the URL contains a valid feed, a Feed will be returned, otherwise, the body of the response will be returned.
TODO: Handle redirects.
784 785 786 787 788 789 790 |
# File 'lib/atom.rb', line 784 def fetch( = {}) begin Atom::Feed.load_feed(URI.parse(self.href), ) rescue ArgumentError Net::HTTP.get_response(URI.parse(self.href)).body end end |
#inspect ⇒ Object
792 793 794 |
# File 'lib/atom.rb', line 792 def inspect "<Atom::Link href:'#{href}' type:'#{type}'>" end |
#length=(v) ⇒ Object
765 766 767 |
# File 'lib/atom.rb', line 765 def length=(v) @length = v.to_i end |
#to_s ⇒ Object
769 770 771 |
# File 'lib/atom.rb', line 769 def to_s self.href end |