basyura's blog

あしたになったらほんきだす。

rubytter.rb があまりにも便利なので rubytter.rb をラップした rubytter.vim を書いてみた

https://github.com/basyura/rubytter.vim

タイムラインを取得したい場合

let tweets = rubytter#friends_timeline()
for t in tweets
  echo t.user.screen_name . " : " . t.text
endfor

↓のようにツイートを取得できる。

mono0x : ブログ書いた。 CTF問題解説 OSのタスク切換え http://t.co/s1NR1xK
rch850 : へしこわるないで!
kuzu_doh : や、サプライチェーンの各ポイントでお金とってたら単に原価膨らますだけじゃね?→やるだけ損、とか思ったけど店舗多かったらそうもいかないのかな?店舗ごとの提供物の差異もあるだろうし…
azu_re : IEテスト用のVIrtual PC VHD配布場所 『Download Details - Microsoft Download Center - IE App Compat VHD』 http://t.co/PpCpgpY
todesking : γ

ツイートしたい場合

call rubytter#update("ほげほげ")

リストのタイムラインを取得したい場合

let tweets = rubytter#list_statuses('basyura' , 'vim')
for t in tweets
  echo t.user.screen_name . " : " . t.text
endfor

設定

MacVim-Kaoriya でしか確認していない。Ruby 1.9 を呼び出せるように vimrc に以下を記述。

let $RUBY_DLL='$HOME/.rvm/rubies/ruby-1.9.2-p290/lib/libruby.1.9.dylib'

Twitter でキーを取得して vimrc に設定

let g:rubytter_consumer_key        = '...'
let g:rubytter_consumer_secret     = '...'
let g:rubytter_access_token        = '...'
let g:rubytter_access_token_secret = '...'

consumer って公開してもいい?
consumer はアプリの判別で、ユーザはそれぞれ access_token を取得してもらうえばいい?
このへんがよく分かってなかってないので、、、ユーザが全部設定できるようにひとまず。

つくってみて

めんどくさい。vimscript ←→ Ruby 間のやりとりがめんどくさい。それを乗り越えると・・・と思ってもやっぱりハマる。
Ruby の Hash を vimscript の辞書型になるように文字列生成するところもめんどくさい。とりあえずごりごり書いた。
デバッグがめんどくさい。どこが悪いのかよく分からない・・・テスト書け?

Ruby インタフェースを使っちゃうと環境がかなり制限されちゃうんだけど、やっぱり Ruby で書くところはかなり楽。gem が呼び出せることが分かったのでかなり色々なことができそう。
Hash と Array を Ruby ←→ vimscript 間で自動的に変換してくれるとかなり楽になると思うんだけどなぁ。