С 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