[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

rAtom 0.2.1 Gem Released

Sean Geoghegan

3/9/2008 6:19:00 AM

rAtom is a Ruby Gem for working with the Atom Syndication Format and
the Atom Publishing Protocol (APP).

rAtom was originally built to support the communication between a
number of applications built by Peerworks[http://pee...], via
the Atom Publishing protocol. However, it supports, or aims to
support, all the Atom Syndication Format and Publication Protocol and
can be used to access Atom feeds or to script publishing entries to a
blog supporting APP.

Features:

* Uses libxml-ruby so it is _much_ faster than a REXML based library.
* Uses the libxml pull parser so it has much lighter memory usage.
* Supports RFC 5005 (http://www.ietf.org/rfc/r...) for feed
pagination.

You can install via gem using:

# sudo gem install ratom

= Usage

To fetch and parse an Atom Feed you can simply:

feed = Atom::Feed.load_feed(URI.parse("http://example.com/feed....))

And then iterate over the entries in the feed using:

feed.each_entry do |entry|
# do cool stuff
end

To construct a Feed

feed = Atom::Feed.new do |feed|
feed.title = "My Cool Feed"
feed.id = "http://example.com/my_feed....
feed.updated = Time.now
end

To output a Feed as XML use to_xml

> puts feed.to_xml
<feed xmlns="http://www.w3.org/2005/Atom...
<title>My Cool Feed</title>
<id>http://example.com/my_feed.atom&...
<updated>2008-03-03T23:19:44+10:30</updated>
</feed>

= Publishing

To publish to a remote feed using the Atom Publishing Protocol, first
you need to create a collection to publish to:

collection = Atom::Pub::Collection.new(:href => 'http://ex...
myblog')

Then create a new entry:

entry = Atom::Entry.new do |entry|
entry.title = "I have discovered rAtom"
entry.authors << name =""> 'A happy developer')
entry.updated = Time.now
entry.id = "http://ex...myblog/newpost"
entry.content = Atom::Content::Html.new("<p>rAtom lets me post to my
blog using Ruby, how cool!</p>")
end

And publish it to the Collection:

published_entry = collection.publish(entry)

= More Information

See http://ratom.rub... for more information.