RubyでRSSを読み込んで表示
ぶっちゃけRuby良くわからない。
だけど、こんな事がしたかったんだな。
- あるブログのRSSを取得
- それをRailsで動いているあるページ内で、レイアウトを整えて表示
ってことで、いろいろ調べてた。
Ruby RSS取得
って調べたら色々出てきた。
お、これなんかいけそうじゃね?
http://d.hatena.ne.jp/akio0911/20080127/1201412414
と思ってそのまま使ってみたんだけど、なんか取得したRSSがまんま表示される。
いや、俺はtitleとdescriptionとlinkだけが欲しいんすよ。
しかもrhtml内に書き込むんで、ちょっと書き方違うっぽいな。
ってことで、頑張って書き換えてみた。
多分見る人が見たら、なんだこれって思うかもw
なんとなく無理やり・非効率な感じがしそう。
>|ruby|
<% require 'rss'
require 'open-uri'
open('http://mindia.jp/book/ogiyasu/rss/type/keyword.rdf') do |http|
response = http.read
result = RSS::Parser.parse(response, false)
result.items.each_with_index do |item, i|
%>
<% if i < 5 %>
<h2><span style="color:#666;"><%= item.dc_date.strftime("%Y-%m-%d") %></span> <%= item.title %></h2>
<p><%= item.description %></p>
<% end %>
<% end %>
<% end %>
||<
とりあえず苦戦したとことしては、dc_dateのとこ。
titleとdescriptionは普通に取得できたんだけど、どしてもdcのdateが取得したかった。
結局
require 'rss/2.0'
require 'rss/1.0'
だと取得できなかったけど、
rquire 'rss'
だと取得できたぞー。
あと、ぶっちゃけrhtml内で<% end %>とかループとかよくわからん!
まぁ、結果オーライってことで。