鬼っ子FeedTools

今日もRSSフィードで遊ぶために,RubyForgeめぐり.試しにRubyForgeをfeedで検索してみ,もっすご見つかるから.迷うから.


で,今回選んだのはFeedTools.
http://rubyforge.org/projects/feedtools/
結構活発なプロジェクトなので,かなり期待できる.

けっこう粋

After installation, you will either need to run in non-caching mode or set up a caching mechanism.

ということで,なんとDBと連携してフィードをキャッシュできるという.migrationでそのまま使えるDBスキーマも用意されていて,中身は/path/to/your/gems/feedtools-*/db/migrate.rbに置いてある.ちなみにそのスキーマ

  • href :string
  • title :string
  • link :string
  • feed_data :text
  • feed_data_type :string
  • http_headers :text
  • last_retrieved :datetime

こんだけある.

使おう

楽しそうなので使ってみる.キャッシュ云々はめんどくさいので「あとで書く*1

>> require 'feed_tools'
>> feed = FeedTools::Feed.open('http://omochist.vox.com/library/posts/atom
.xml')
>> feed.title
>> puts feed.title
"mochi"[0..1].sub(/m/,"x").concat("v").reverse
>> puts feed.description
アルファギークになりたい!
>> puts feed.link
http://omochist.vox.com/library/posts/page/1/
>> puts feed.items.class
Array # ニヤリ
>> feed.items.each do |item|
>>     puts item.title
1>   end
フルフェイス
ワニトカゲギス目は結構カッコいい
21歳になったようです
Happy Halloween
11月
はじめまして

やっべ,これ鬼っ子だ.鬼のように使いやすい.今まで使ったRSS系のGemで間違いなくトップだよ.

バグ?仕様?

上のはVoxのAtomを読み込ませたんだけども,ちゃんとEnclosureが取れてないみたい.

>> item = feed.items.first
>> puts item.enclosures.size
0

画像は何処行った?
試しにYouTubeRSSからEnclosureが取れるか試してみたら,取れた.

>> youtube = FeedTools::Feed.open('http://youtube.com/rss/global/recently
_added.rss')
>> item = youtube.items.first
>> puts item.enclosures
#<FeedTools::Enclosure:0x242bb9c>
>> puts item.enclosures.first.link     
http://youtube.com/v/-4ywdKdooVA.swf

とまぁこのように.活発なプロジェクトなんで,これからなんとでも改良されるでしょう!気長に待つお(^ω^)

感想

良いよコレは相当良いよ.もともとはid:hakobe932:20061103:1162574853のfeedparserにインスパイアされて探してみたんだけど,想像以上だった.積極的に使っていこうと思う.

*1:ゴメン,誰か書いて