假设我有一个从摄氏温度转变为华氏温度的宝石。因此,从我的IRB内部,以及安装gem之后,我可以这样做:
Temperature.convert_to_celsius(80)
我的问题是,如何修改gem以便能够从shell运行?我见过一些有bin文件夹的宝石,但我不知道如何继续。这样做的正确方法是什么?
答案 0 :(得分:2)
你过分思考这个问题。 gem只是一个打包的Ruby模块。大多数宝石都有可执行的Ruby脚本,允许用户从命令行运行它们,但有些则没有,特别是如果它们打算用作库而不是命令。如果你的gem没有自己的可执行包装器,你可以编写自己的。
假设您的gem被称为“温度”,您只需编写一个名为 temp.rb 的可执行Ruby包装器,如下所示:
#!/usr/bin/env ruby
require 'temperature'
Temperature.convert_to_celsius ARGV.first
将包装器放在 PATH 中的某个位置(例如$HOME/bin
),并确保脚本是可执行的(例如chmod 755 ~/bin/temp.rb
)。然后,您可以从命令行调用脚本:
$ temp.rb 80
26.6667