С Ruby + Webrick + Sinatra, где «разработка»? метод пришел?

Откуда берется понятие «режим разработки» при использовании 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? Является ли режим разработки концепцией руби, вебрика, стойки или синатры? Кроме того, документирована ли эта функциональность где-либо, в частности, не для рельсов? Я нахожу, что многие люди ссылаются на концепцию режима разработки, но я был удивлен тем, как трудно было найти соответствующую информацию ... может быть, я просто не ищу в Google правильные ключевые слова ...


person Michael Wasser    schedule 14.07.2011    source источник


Ответы (1)


исходный код (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
person Dylan Markow    schedule 14.07.2011