rAtom 0.2.1 Gem Released

S

Sean Geoghegan

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://peerworks.org], 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/rfc5005.txt) 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.atom"))

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.atom"
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</id>
<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://example.org/
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://example.org/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.rubyforge.org for more information.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top