起動オプション "-s"

マニュアル(http://www.ruby-lang.org/ja/man/html/Ruby_A4CEB5AFC6B0.html)には、

-s

スクリプト名に続く, `-'で始まる引数を解釈して, 同名のグローバル変数に値を設定します。
`--'なる引数以降は解 釈を行ないません。該当する引数は ARGV から取り除かれます。

例:

#! /usr/local/bin/ruby -s
# prints "true" if invoked with `-xyz' switch.
print "true\n" if $xyz

とあるが、この説明じゃイマイチよくわからん。

実際には、こうすればいいようだ

> ruby -s test.rb -xyz=hoge

これでグローバル変数 $xyz に "hoge" という文字列がセットされる。

これを利用して、スクリプトが起動された時の時刻をセットすることもできる(以下の例はWindows用)

> ruby -s test.rb -time_str="%date% %time%"

test.rb の中身はこんなカンジ

require 'time'
t = Time.parse($time_str)