4

使用 ruby​​ + webrick + sinatra 时,“开发模式”的概念从何而来?

require 'sinatra'
require 'sinatra/reloader'

get '/test' do
  development?.to_s
end

当我通过 'ruby test.rb -p 3000' http://localhost:3000/test运行上述应用程序时,返回“true”......但为什么它返回 true?开发模式是 ruby​​、webrick、rack 还是 sinatra 概念?此外,此功能是否以非特定于 Rails 的方式记录在任何地方?我发现很多人都提到了开发模式的概念,但我对找到相关信息的难度感到惊讶......也许我只是没有用谷歌搜索正确的关键字......

4

1 回答 1

7

Sinatra 的源代码 (base.rb)显示了这 3 个定义:

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

所以那些真/假方法是基于设定的环境的。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 回答