pockestrap

Programmer's memo

require を忘れる

Ruby のコードをちょっと試したい時、requireを煩わしく感じることがあります。

例えば素数が小さい順に10個欲しくなった時、RubyistRubyワンライナーを書くでしょう。

$ ruby -e 'require "prime"; require "pp"; pp Prime.take(10)'
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

もしくは、-rオプションを使用してrequireを行うかもしれません。

$ ruby -rprime -rpp -e 'pp Prime.take(10)'
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

ですが、これはちょっと面倒ですね。何故私達は-rprime-rppなどといったオプションを指定しなければいけないのでしょうか?
Prime定数と言ったらprimeライブラリですし、ppメソッドと言ったらppライブラリです。Ruby はこんな簡単なことも分からず、"Undefined method"などとのたまうのです。

equire

ですが、そんなイライラとも今日でお別れです。 私達は、Ruby に「Prime定数と言ったらprimeライブラリだ」と教えることが出来ます。

それがequireです。 gem install equireで今すぐ使いはじめることが出来ます。

github.com

equire は Ruby に「Prime定数はprimeライブラリだよ」と教えることができます。 それを教わった Ruby は、requireをせずともPrime定数やppを使うことが出来るようになります。

先程の素数を列挙する例を見てみましょう。

$ ruby -require -e 'pp Prime.take(10)'
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

-rpp -rprimeの代わりに、-requireひとつで済んでいるのがわかりますね。

もっと便利に

github.com

でも、-requireを打たなければいけないのはちょっと面倒くさいですね。
そんな面倒くさがりな人のために、もうひとつツールを用意しています。何も言わずにgem install ppcliしてみてください。

$ gem install ppcli
$ pp 'Prime.take(10)'
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

なんと、-requireも、ppも省略できてしまいました。

まとめ

equireそしてppcliを使うことで、requireを省略できます。 ちょっとした Ruby のコードを実行する機会が多い人は、試してみてはいかがでしょうか。