我正在尝试使用新的ruby功能在ruby 2.3下运行我们的应用程序,以便全局启用自动冻结字符串。 (Ruby 2.3)这通常通过在开始时将参数传递给ruby脚本来完成,如下所示:
ruby --enable-frozen-string-literal ruby_code_file.rb
不幸的是,我们的应用程序是使用rackup开始的,我尝试了以下命令:
rackup --enable-frozen-string-literal
但这似乎不起作用。如何将该参数传递到Rack?
答案 0 :(得分:4)
不幸的是,您无法将G<?>
的参数传递给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
。
P.S。我猜测rackup
并不适用于您的脚本需要的宝石,因为它会破坏很多宝石,但我还没有测试过这个和YMMV。