如何使用冻结的字符串文字启动Rack应用程序?

时间:2016-01-13 22:44:19

标签: ruby rack ruby-2.3

我正在尝试使用新的ruby功能在ruby 2.3下运行我们的应用程序,以便全局启用自动冻结字符串。 (Ruby 2.3)这通常通过在开始时将参数传递给ruby脚本来完成,如下所示:

ruby --enable-frozen-string-literal ruby_code_file.rb

不幸的是,我们的应用程序是使用rackup开始的,我尝试了以下命令:

rackup --enable-frozen-string-literal

但这似乎不起作用。如何将该参数传递到Rack?

1 个答案:

答案 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。