そんな今日この頃でして、、、

コード書いたり映画みたり。努力は苦手だから「楽しいこと」を探していきたい。

曜日毎の人気番組を表示するウェブアプリ作ったった

久々にRubyで何か作ってみようかと思い作成。


これから新番組の季節だし、注目作を見逃さないために。

torneのあれ、APIでも出してくれれば色々面白いと思うんだけど、残念ながらそういうのは無いので歪曲的な手段で実現。

f:id:blue1st:20140909012530p:plain

トル・ミル ランキング

とりあえず今期はジョジョが頭飛び抜けて人気、次いでSAO、テロル、グール、ちょっと下にアルドノアetcという感じらしい。


原理としては、Twitterのトルネ公式のアカウント(@tornev)の定型文ツイートから正規表現で取得する感じ。

内部的にはSinatra+twitterという昔作ったツイートから占い出すのと同じ構成なんだが、しばらく触らぬうちにRubyは2系になってたり、各種gemもアップデートで使い方が変わってたりで色々戸惑った。

herokuにデプロイしようとする→エラーる→しぶしぶローカルの環境をアップデート→併せて動くように作り変えるという感じになり、ローカルで動くものを作るまでよりも環境作る方が時間掛かった。

rvmの使い方とか完全に忘れてて無駄に色々インストールしてしまったのが痛い。


色々雑だしデザインもちょっと気に入ってないので、おいおい作り変えるかも。

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)


普段Perl使ってる身からするとRubyって後発なだけあって色々合理的に出来てるなーと感心することは多いのだけれど、まだまだ「使いやすい」と思える程には使い切れてない

gemの使い方の変化

一年前に作った時と結構使い方が変わってたのでメモ。

sinatra

requireの後あたりでset :server, 'webrick'みたいな感じにサーバを記述してやらないとエラーになるっぽい。

twitter

オブジェクトを作る形で

前は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

みたいにメソッドの形での取得するらしい。