如何编写可以在没有单词'ruby'的情况下调用的 Ruby 宝石



我想编写一个封装在Gem中的CLI应用程序,该应用程序可以像调用git命令或Gem命令一样调用。例如,当运行say"gitclone"时,不需要在它前面加上"ruby"。然而,到目前为止,我看到的关于编写宝石的教程和文章并没有显示这一点。这些例子要么要求您通过irb运行gem,并有适当的要求,要么像"ruby"一样运行它。这不是我想要的。如果你知道任何涉及这方面的教程,那就太好了。

谢谢。

脚本开头的"#!"行告诉您的shell使用哪个可执行文件来执行脚本。在这种情况下,它告诉它从环境中找到Ruby可执行文件,并将脚本交给它执行。

举个例子,我有一个名为"hi"的文件,其中包含以下内容:

#!/usr/bin/env ruby
puts "hi!"

我让它可执行:

$ chmod a+x hi

然后我可以直接执行它,而无需显式调用Ruby解释器:

$ ./hi
hi!

根据教程,您只需提供一个需要您的宝石之类的文件,并在您的宝石规范的executables属性中提供:

Gem::Specification.new do |s|
  # ...
  s.executables << 'hi'

安装gem后,hi脚本将被安装到路径上可发现的位置,因此您可以调用它。

相关内容

最新更新