Oes*_*ste 4 ruby rack ruby-2.3
我正在尝试使用新的 ruby 功能在 ruby 2.3 下运行我们的应用程序,以便在全局范围内打开自动冻结字符串。 (Ruby 2.3) 这通常是通过在启动时将参数传递给 ruby 脚本来完成的,如下所示:
ruby --enable-frozen-string-literal ruby_code_file.rb
Run Code Online (Sandbox Code Playgroud)
不幸的是,我们的应用程序是使用 rackup 启动的,我尝试了以下命令:
rackup --enable-frozen-string-literal
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。我如何将该参数传递给 Rack?
不幸的ruby是rackup,您不能为to传递参数。然而,rackup真的,真的很简单:
#!/usr/bin/env ruby
require "rack"
Rack::Server.start
Run Code Online (Sandbox Code Playgroud)
那么,最简单的解决方案是在您的项目中复制此文件(例如,bin/frozen_rackup),但将第一行更改为:
#!/usr/bin/env ruby --enable-frozen-string-literal
Run Code Online (Sandbox Code Playgroud)
然后确保文件是可执行的 ( chmod u+x bin/frozen_rackup) 并运行bin/frozen_rackup而不是rackup.
PS 我猜这--enable-frozen-string-literal不适用于您的脚本所需的宝石,因为它会破坏很多宝石,但我还没有测试过这个和 YMMV。
| 归档时间: |
|
| 查看次数: |
1321 次 |
| 最近记录: |