Rails: feedjiraで記事収集
ここ暫く取り組んでいるRSSリーダー作りの記事です。
今回は記事を収集する為のアプリケーション"feedjira"をセットアップしました。
■ ブランチの作成
今回はfeedjiraを実装するので、"feedjira"というブランチを作成します。
~/workspace/xapp8(master)$ git checkout -b "feedjira"
~/workspace/xapp8(feedjira)$
■ セットアップ
まずはfeedjiraをインストールして、テスト的にデータを取ってみようと思います。
gemfileにfeedjiraを追加してインストールします。RubyGems.orgによると、現時点(2014/8/20)でのfeedjiraの最新バージョンは v1.3.1なので、以下のように記載しました。
gemfile
# 記事収集機能
gem 'feedjira', '~> 1.3'
記載したらインストールを実行します。また、feedjiraを定期的に実行させる為のrakeタスクを作成します。
~/workspace/xapp8(feedjira*)$ bundle install
~/workspace/xapp8(feedjira*)$ rails g task getfeed
rails generateで作成したタスク"getfeed"に記事を収集する為のロジックを定義します。
lib/tasks/getfeed.rake
namespace :getfeed do
desc "登録されているページのフィードをDBに格納します" #=> 説明# $ rake getfeed:exec のように使う
# :environmentは超大事。ないとモデルにアクセスできないtask :exec => :environment do
urls = %whttp://new-village.hatenablog.com/rss
feeds = Feedjira::Feed.fetch_and_parse urls
feed = feeds['http://new-village.hatenablog.com/rss']
puts "ブログTTL:"+feed.title
puts "ブログURL:"+feed.url
feed.entries
entry = feed.entries.first
puts "記事 TTL:"+entry.title
puts "記事 URL:"+entry.url
end
end
ロジックを定義したら、rakeの一覧に登録されているかどうか確認します。一覧に表示されたら、そのコマンドを実行します。putsで設定した内容が正しく表示されたらセットアップは完了です。
~/workspace/xapp8(feedjira*)$ rake -vT
...
rake getfeed:exec # 登録されているページのフィードをDBに格納する
~/workspace/xapp8(feedjira*)$ rake getfeed:exec
ブログTTL:New-Village
ブログURL:http://new-village.hatenablog.com/
記事 TTL:Rails: リンクを押すとDBを更新
記事 URL:http://new-village.hatenablog.com/entry/2014/08/20/122247
■ 最後に
いつも通り、各種サービスにアップロードして終了です。
~/workspace/xapp8(feedjira*)$ git add .
~/workspace/xapp8(feedjira)$ git commit -m"feedjiraセットアップ"
~/workspace/xapp8(feedjira)$ git checkout master
~/workspace/xapp8(master)$ git merge feedjira
~/workspace/xapp8(master)$ git push
~/workspace/xapp8(master)$ git push heroku