Как запустить приложение Rack с замороженными строковыми литералами?
Я пытаюсь запустить наше приложение под ruby 2.3, используя новую функцию ruby для автоматически замороженных строк, включенных по всему миру. (Ruby 2.3) Обычно это делается передачей аргумента в скрипт ruby при запуске следующим образом:
ruby --enable-frozen-string-literal ruby_code_file.rb
К сожалению, наше приложение запущено с использованием rackup, и я попробовал следующую команду:
rackup --enable-frozen-string-literal
Но это не похоже на работу. Как передать этот параметр в Rack?
1 ответ
Вы не можете передать параметры для ruby
в rackup
, к несчастью. Тем не мение, rackup
действительно очень просто:
#!/usr/bin/env ruby
require "rack"
Rack::Server.start
Самое простое решение - скопировать этот файл в вашем проекте (скажем, bin/frozen_rackup
) но измените первую строку на это:
#!/usr/bin/env ruby --enable-frozen-string-literal
Затем убедитесь, что файл исполняемый (chmod u+x bin/frozen_rackup
) и беги bin/frozen_rackup
вместо rackup
,
PS Я предполагаю, что --enable-frozen-string-literal
не относится к драгоценным камням, которые требует ваш скрипт, так как он разбил бы много драгоценных камней, но я не проверял это и YMMV.