4

「開発モード」の概念は、ruby + webrick + sinatraを使用する場合、どこから来たのですか?

require 'sinatra'
require 'sinatra/reloader'

get '/test' do
  development?.to_s
end

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

4

1 に答える 1

7

Sinatraのソースコード(base.rb)は、次の3つの定義を示しています。

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

したがって、これらのtrue / falseメソッドは、設定された環境に基づいています。特に指示がない限り、Sinatraはデフォルトで開発モードで実行されます(Sinatraアプリを起動すると、次のように表示されます)。

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

本番環境で実行するように指示するには、次のようにします。

ruby test.rb -p 3000 -e production
于 2011-07-14T19:24:14.853 に答える