Aims to be the smallest, easiest to use ruby Atom feed generator.
Currently supports only a subset of the most frequently used Atom fields. This example shows everything it can do.
require 'tinyatom'
feed = TinyAtom::Feed.new(
'http://mysite.com/blog/',
'My Blog',
'http://mysite.com/blog/atom.xml',
# optional
:author_name => 'me',
:author_email => '[email protected]',
:author_uri => 'http://mysite.com/',
:hubs => ['http://pubsubhubbub.appspot.com/']
)
feed.add_entry(
1,
'post 1',
Time.now,
'http://mysite.com/blog/1',
# optional
:summary => 'the summary',
:content => 'the content',
:author_name => 'me',
:author_email => '[email protected]',
:author_uri => 'http://mysite.com/',
:enclosure_type => 'image/png',
:enclosure_href => 'http://mysite.com/image.png',
:enclosure_title => 'photo',
:enclosure_length => 6227, # optional within enclosure
:via_type => 'text/html',
:via_href => 'http://anotherblog.com/posts/999',
:via_title => 'Look at this photo',
:media_thumbnail_url => 'http://mysite.com/thumbnails/1.jpg',
:media_thumbnail_width => 100,
:media_thumbnail_height => 100,
:media_thumbnail_time => '00:00:00.000'
)
puts feed.make(:indent => 2)
# open('atom.xml', 'w') { |f| feed.make(:target => f) }
Output:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns:media="http://search.yahoo.com/mrss/" xmlns="http://www.w3.org/2005/Atom">
<title>My Blog</title>
<link rel="self" href="http://mysite.com/blog/atom.xml"/>
<updated>2010-11-14T11:36:03-05:00</updated>
<id>http://mysite.com/blog/</id>
<author>
<name>me</name>
<email>[email protected]</email>
<uri>http://mysite.com/</uri>
</author>
<link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
<entry>
<title>post 1</title>
<link href="http://mysite.com/blog/1"/>
<id>tag:mysite.com,2010-11-14:1</id>
<updated>2010-11-14T11:36:03-05:00</updated>
<summary>the summary</summary>
<content>the content</content>
<author>
<name>me</name>
<email>[email protected]</email>
<uri>http://mysite.com/</uri>
</author>
<link type="image/png" rel="enclosure" length="6227" title="photo" href="http://mysite.com/image.png"/>
<media:thumbnail url="http://mysite.com/thumbnails/1.jpg" height="100" time="00:00:00.000" width="100"/>
<link type="text/html" rel="via" title="Look at this photo" href="http://anotherblog.com/posts/999"/>
</entry>
</feed>
Questions and comments: [email protected]