gpt4 book ai didi

ruby - 在 Ruby gem 中,是否可以使用其他语言编写可执行文件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:06 25 4
gpt4 key购买 nike

我有一个 gem,它在 bin/ 中有一个可执行文件。在 gemspec 中使用了通配符:

s.executables = Dir["bin/*"].map &File.method(:basename)

如果我在 bin/my_file 有一个运行了 chmod a+x 的 ruby​​ 文件,那么它会在 bash 的 PATH 中找到:

#!/usr/bin/env ruby
puts "working ruby script"

然而,我在 bin/my_file.coffee 中有另一个用 coffeescript 编写的可执行文件:

#!/usr/bin/env coffee
console.dir "printing from coffee file"

当我在 shell 中运行 my_file.coffee 时,它会尝试使用 ruby​​ 而不是 coffeescript 来读取此脚本。

如何按预期使用 coffeescript 运行此可执行文件?

就目前而言,我正在使用一种解决方法,即将我的咖啡代码作为字符串包装在我的 ruby​​ 应用程序中,然后将其传递给 coffee -e 并捕获输出。

同时,查看 this RubyGems issue显示官方解释:

RubyGems is not meant to support arbitrary executables.

好的。那么除了在 heredoc 中包装代码之外还有其他选择吗?

实现此限制是否有充分的理由?

最佳答案

我想这只是在 RubyGems 的规范中:

https://github.com/zzak/rubygems/commit/709c5aae7ffd9958cc2ea89dc2caf6b7e02c56b7

+  # Executables included may only be ruby scripts, not scripts for other
+ # languages or compiled binaries.
+ #

关于ruby - 在 Ruby gem 中,是否可以使用其他语言编写可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41206061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com