sinatraの登竜門といえばRSSリーダー作成なのでRSSについてまとめてみたよ
猫も杓子もRSSリーダー
RSSリーダーって「まずはこれ!」みたいな感じなので実際に作ってみます。 まずはRSSの要素を読み込んでみましょう。
RSSライブラリで読み込むよ
require 'rss' rss = RSS::Parser.parse('http://somethingpg.hatenablog.com/rss')
超簡単です。
このサイトのRSSなんですが、こんな感じです。
<?xml version="1.0"?> <rss version="2.0"> <channel> <title>プログラミング的なSomething</title> <link>http://somethingpg.hatenablog.com/</link> <description>学習記録や気付いたこととか</description> <lastBuildDate>Sun, 02 Feb 2014 09:38:44 +0900</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>Hatena::Blog</generator> <item> <title>sinatraでアプリ書くために基本処理まとめ</title> <link>http://somethingpg.hatenablog.com/entry/2014/02/02/093844</link> <description><h1><a class="keyword&quo・・・ 以下、実際の記事
要はここに載っている要素を呼び出してあげればOKです。
Channel要素とitem要素をそれぞれ呼び出してみた
コードは以下の通り。使い方の確認って感じです。
require 'rss' rss = RSS::Parser.parse('http://somethingpg.hatenablog.com/rss') # Channel要素の呼び出しは直感的 p rss.channel.title p rss.channel.link p rss.channel.description p rss.channel.lastBuildDate p rss.channel.docs p rss.channel.generator rss.items.each do |item| # RSS:Rss#itemsはRSS::Rss::Channel::Itemクラス全てを格納した配列を呼び出す p item.class #=> RSS:Rss::Channel::Item p item.title p item.date p item.link # descriptionは長大になるため省略 # p item.description end # 以下処理結果 "sinatraでアプリ書くために基本処理まとめ" 2014-02-02 09:38:44 +0900 "http://somethingpg.hatenablog.com/entry/2014/02/02/093844" "__END__と定数DATAに関して" 2014-02-01 07:02:41 +0900 "http://somethingpg.hatenablog.com/entry/2014/02/01/070241" "Rubyのselfがめっちゃよくわかるサンプルコード" 2014-01-31 09:12:09 +0900 "http://somethingpg.hatenablog.com/entry/2014/01/31/091209" "特異メソッドとその用途Singletonパターン" 2014-01-30 22:45:32 +0900 "http://somethingpg.hatenablog.com/entry/2014/01/30/224532" "attr_accessorの使い方" 2014-01-29 07:55:29 +0900 "http://somethingpg.hatenablog.com/entry/2014/01/29/075529" "クロージャーとしてのブロックの扱い" 2014-01-24 08:02:25 +0900 "http://somethingpg.hatenablog.com/entry/2014/01/24/080225" "Rubyにおいて多値を返す場合のお作法" 2014-01-23 07:48:24 +0900 "http://somethingpg.hatenablog.com/entry/2014/01/23/074824"