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

1 ответ

Решение

Исходный код Синатры (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
Другие вопросы по тегам