longurl gemインストール(+String#gsubのブロック取扱)

URL短縮サービスで短縮されたURLを伸張して返します。
twitterのt.coの展開に使えます。
t.coはわざわざlongurlで展開しなくても、Twitter APIの返答に入ってました…詳しくは→t.coの伸張後URLは含まれてた - 別館 子子子子子子(ねこのここねこ)

インストール

$ gem install longurl
Fetching: longurl-0.1.6.gem (100%)
Successfully installed longurl-0.1.6
1 gem installed

使い方

LongURL.expand(short_url)
# => long_url

具体的に

注意:Twitter gemのバージョンが5未満の設定ですので、5以上だと以下の手順は無効ですゴメンナサイ

twitter gemを使ったruby一行野郎を環境変数を使って改良 - 別館 子子子子子子(ねこのここねこ)
の検索結果のt.coを伸張させましょう。見やすいように改行してます。

$ ruby -rtwitter -rlongurl -e eval(ENV["TW"]). \
search("riocampos", count:100).statuses. \
map{ |i| puts "@#{i.user.screen_name}: #{i.text.gsub(%r<(http://t.co/[\w]+)>){ LongURL.expand($1) }}"}'

いちおう解説すると、ツイート本文のうち、t.coで始まるURLの正規表現にマッチする部分をgsubで逐一ピックアップし、マッチ部分を伸張するよう記載したブロックでその部分を置き換える、ということをしています。gsub(/regex/, "replace")ではなくgsub(/regex/){ "replace" }なのは、正規表現にマッチした文字列を使いたいのと、\1じゃなく$1で分かりやすく書きたいからです。
gsubについてはマニュアル参照:instance method String#gsub (Ruby 1.9.3)