Как запустить приложение 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.

Другие вопросы по тегам