Rails のソースコードを読んでいたら
before = $-w
$-w = false
require 'action_dispatch/journey/parser'
$-w = before
https://github.com/rails/rails/blob/v4.0.2/actionpack/lib/action_dispatch/journey/router.rb#L6-L9
というのがあって $-w
なんだろうと思って調べたら オプション変数というグローバル変数があるそうな。
どうやら -w が指定されているかどうかの判断に利用できる模様。
つまり、このコードは
-w
がついていたかどうかを保存しておいて- requireをして
-w
をもとの状態にもどす
ということをしているようです。
-w は verbose レベルを設定する機能ですが、 ActiveSupportに一時的に変更する機能があったような気がしつつも、調べてない。
もう少し詳しく
こういうのは実際に試すのが大事だよね。
指定しない場合
$ ruby -e 'p $-w'
false
指定する場合
$ ruby -w -e 'p $-w'
true
ちなみに -w
は -W2
と等価らしいので、これも確認してみよう。
$ ruby -e 'p $-W'
1
$ ruby -w -e 'p $-W'
2