久々にRubyで何か作ってみようかと思い作成。
これから新番組の季節だし、注目作を見逃さないために。
torneのあれ、APIでも出してくれれば色々面白いと思うんだけど、残念ながらそういうのは無いので歪曲的な手段で実現。
とりあえず今期はジョジョが頭飛び抜けて人気、次いでSAO、テロル、グール、ちょっと下にアルドノアetcという感じらしい。
原理としては、Twitterのトルネ公式のアカウント(@tornev)の定型文ツイートから正規表現で取得する感じ。
内部的にはSinatra+twitterという昔作ったツイートから占い出すのと同じ構成なんだが、しばらく触らぬうちにRubyは2系になってたり、各種gemもアップデートで使い方が変わってたりで色々戸惑った。
herokuにデプロイしようとする→エラーる→しぶしぶローカルの環境をアップデート→併せて動くように作り変えるという感じになり、ローカルで動くものを作るまでよりも環境作る方が時間掛かった。
rvmの使い方とか完全に忘れてて無駄に色々インストールしてしまったのが痛い。
色々雑だしデザインもちょっと気に入ってないので、おいおい作り変えるかも。
Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)
- 作者: 和田裕介,石田絢一(uzulla),すがわらまさのり,斎藤祐一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/11
- メディア: 大型本
- この商品を含むブログ (5件) を見る
普段Perl使ってる身からするとRubyって後発なだけあって色々合理的に出来てるなーと感心することは多いのだけれど、まだまだ「使いやすい」と思える程には使い切れてない
gemの使い方の変化
一年前に作った時と結構使い方が変わってたのでメモ。
sinatra
requireの後あたりでset :server, 'webrick'
みたいな感じにサーバを記述してやらないとエラーになるっぽい。
オブジェクトを作る形で
前はTwitter.configure do |config|〜end
で設定して全体でTwitter
を使いまわす形だったけど、これがダメになった模様。
client = Twitter::REST::Client.new do |config|〜end
という形で具体的なオブジェクトを作成し、それを使う。
oauth〜→account〜
[DEPRECATION] #oauth_token= is deprecated. Use #access_token= instead. [DEPRECATION] #oauth_token_secret= is deprecated. Use
警告レベルだけど、上記のオブジェクト作成の際に指定する.oauth_token
およびoauth_token_secret
がそれぞれ.access_token
.access_token_secret
になった模様。
取得した要素へのアクセス
[DEPRECATION] #[:text] is deprecated. Use #text to fetch the value.
前は各要素へは、例えばタイムライン取得なら
Twitter.user_timeline("@#{account}", {:count => 200}).each do |res| tweet_text = res[:text] tweet_time = res[:created_at]
みたいな感じだったけど、この[:text]
の取り方が警告出るようになった。
新しくは↓
client.user_timeline("@#{account}", {:count => 200}).each do |res| tweet_text = res.text tweet_time = res.created_at
みたいにメソッドの形での取得するらしい。