RubyでシンプルなTwitterクライアント書いた

シンプルなTwitterクライアント書きました。
GitHub - hanachin/tsurube: simple twitter client
名前はTwitter×Ruby、ついるび、つるび、つるべ、ということでtsurube。

コマンドラインで動作するTwitterクライアントを30分くらいで作れるPythonはかっこいい - YAMAGUCHI::weblog
こちらの記事をを見てRubyでやってみたくなった。
「30分? よゆー」と思ってたけどずるずる時間かかって実装力の足りなさを痛感しました。

今のところ

  • tl タイムライン取得
  • tl 40 タイムライン取得(1-200の間で指定)
  • mentions, m メンション見る
  • login, l ログイン
  • exit, quit, q 終了
  • tw ついーと

あたりのコマンドは実装した。基本的なツイートする、TL見る、メンション見る、終了する。が実装出来たし満足。
config.ymlに認証情報を登録したらすぐ使えます。

困ったところ

コンソールの操作するgem使った事ない

カーソルキーの上押すと前のコマンドが見れたり、Emacsバインドで編集出来れば最高なんですが、そういう事が出来るgemを僕は知らない。
探そうと思ったけどHighLineで対処。
今度良さそうなgemをいくつか試しておこうと思う。

warning: regexp match /.../n against to UTF-8 string

日本語で発言するときにここのコードで「warning: regexp match /.../n against to UTF-8 string」が出た。
faraday/utils.rb at master · technoweenie/faraday · GitHub
UTF-8の文字列に対してRegExpのオプションでnを渡して漢字コード無視ってるのが問題なよう。
エラーメッセージでググると同じ問題がいくつか出てきた。
FaradayのUtilsのescapeメソッドの中身をEscapeUtilsのescape_url使うようにして対処。

工夫したとこ

元ネタのライセンスが面白かったので同じものを採用。
参考:WTFPL - Wikipedia

ログインが必要な処理をブロックで渡して、ログインしてなかったらログインを促すメッセージをだしブロックを実行しない、ログインしていたらブロックを実行する。
という風に書いてみた。ブロック可愛いよブロック。