2011-07-14 7 views
4

「開発モード」の概念は、ruby + webrick + sinatraを使用したときのものですか?Ruby + Webrick + Sinatraでは、「開発はどこですか?」方法は?

require 'sinatra' 
require 'sinatra/reloader' 

get '/test' do 
    development?.to_s 
end 

私は「真」を返す...しかし、なぜそれが真を返すんhttp://localhost:3000/test「ルビーtest.rb -p 3000」で上記のアプリを実行しますか?開発モードはルビー、ウェブリック、ラック、シンシアラのコンセプトですか?また、この機能は特に非レール特有の方法でどこに文書化されていますか?私は多くの人が開発モードの概念を参考にしていることを知っていますが、関連する情報を見つけるのがどれほど難しいかに驚いています...

答えて

7
だから、それらの真/偽のメソッドは、設定された環境に基づいています

def development?; environment == :development end 
def production?; environment == :production end 
def test?;  environment == :test  end 

シナトラのsource code (base.rb)は、これらの3つの定義を示しています。あなたがそれを教えてくれない限り、シナトラのデフォルト値を使用すると、シナトラアプリを起動したとき、あなたは本番で実行するように指示するには

== Sinatra/1.2.6 has taken the stage on 4567 for **development** with backup from WEBrick".

のようなものを参照してくださいよ、あなたはこれを行うだろう(そうでない場合は、開発モードで実行します

ruby test.rb -p 3000 -e production 
関連する問題