Ramaze.startに関するハマり所
知らないとハマると思います。Ramaze.start(Ramaze.startupの別名です) を呼び出す場所に注意!lib/ramaze.rb から引用。
def startup options = {} runner_from_caller = caller[0][/^(.*?):\d+/, 1] runner = options.delete(:runner) || runner_from_caller if $0 == runner or options.delete(:force) Inform.info("Starting up Ramaze (Version #{VERSION})") SEEED.replace(runner) APPDIR.replace(File.dirname(File.expand_path(runner))) trait[:essentials].each do |obj| obj.startup(options) end else Global.startup(options) end end
となっているので、Ramaze.start を $0(実行中のRubyスクリプトの名前を表す文字列)以外の場所から呼び出す場合には、:force => true しないとサーバが立ち上がりません。Ramaze::Global.startup(options)は各種変数設定を行なうだけで、サーバを起動してくれないのです。start.rbが大きくなってきたから他のファイルに分割しようかなぁ、なんて時には是非ともお気をつけ下さい。
Rakefileから各種設定を取得する目的で start.rb を require する時には、サーバが立ち上がらないのでうまいコトいきます。これも覚えておきますと便利ではないでしょうか。