なれてる人は当然のことだと思うけれど、何となく書いてみます。それは、「Require」の書き方。
普通は(本当に普通なのか知らないけれど)、以下のように書きますよね?
require 'nkf' class Hoge def utf8(str) return NKF.nkf("-w8",str) end end
まあ、Perlの頃からの癖が抜けないとも云いますが。この書き方は、Javaのように「1Class、1File」というポリシーで書かれたらさほど問題ないのですが、Rubyのような手軽なScript言語だと、「いちいちFile分けないよ」と言う場合もあります。しかし、Rubyはオブジェクト指向言語なので、比較的「Class単位でコピペして使い回す」なんてことがあったりします。この辺が、手軽さと、きっちりオブジェクト指向の悩ましいところでもありますが。
そうしたとき、クラスをコピペしても依存しているライブラリを組み込まないと動きませんよね?
そこで以下のようにしてみるといいですよ。ちなみに、Rubyのライブラリの多くはその書き方をしていたりします。
class Hoge require 'nkf' def utf8(str) return NKF.nkf("-w8",str) end end
クラス定義の中にrequireも含めちゃうんですね。合理的&requireがクラス定義の中に書けることに驚いた。