ユユユユユ

webエンジニアです

ActiveSupport はきめ細かく require できる

  hanami を利用した開発への所感 にて、こう書いた。

タイムスタンプを「○日前」と文字列に変換するだけのために、 ActiveSupport を丸ごと取り込むのは、理にかなった判断とは言えまい。

 断定してしまっているが、実はよく調べないまま印象で語ってしまっていた。調べ直してみて、誤っていることがわかったので、訂正する。

 ActiveSupport はそこに含まれる部分的な機能を使うだけのために、巨大なモジュール全体に依存してしまう必要ははない。

 というのも、次のように書いただけでは、もろもろのクラス拡張は読み込まれない。

require 'active_support'

 次のように書いて初めて、当該の拡張だけが読み込まれる。この場合、Object#blank?だけを指定して読み込むことになる。

require 'active_support'
require 'active_support/core_ext/object/blank'

 要するに、ごく小さなヘルパーを利用するだけのために、あらゆるクラスが「汚染」されてしまうというのは杞憂、ということになっている。