如何使 Ruby gem 可执行

问题描述 投票:0回答:3

我可以通过调用 RSpec 或 Rails 或 Pry 等 Gem 各自的 Gem 名称来使用它们,例如命令行上的

rspec
rails
pry
。如何使用我创建的宝石实现这一目标?我正在使用捆绑器进行基本的 gem 创建。

ruby rubygems bundler
3个回答
14
投票

实际上我的可执行文件位于

/bin
文件夹中。

原来我的问题是,bundler 的 gem 模板太智能了,不利于它本身的好处,并且包含已提交到 git的文件。我实际上还没有提交可执行文件,所以它没有拾取它:

# gemname.gemspec
gem.files         = `git ls-files`.split($\)

6
投票

根据 Gemspec 文件的文档,您必须将可执行文件放入

bin/
文件夹中。


4
投票

要使您的 gem 在 CLI 中可执行,您应该设置以下内容。

  1. 将可执行文件放置在
    bin
    文件夹中,例如
    bin/hello
  2. 通过设置权限使其可执行(
    chmod u+x bin/hello
  3. 相应地设置 gemspec 配置 (
    hello.gemspec
    )
spec.files  = `git ls-files -Z`.split("\x0")
spec.bindir = 'bin'
spec.executables << 'hello'

spec.executables
bin
视为二进制文件和可执行文件的默认文件夹,但您可以更改它。

您可以在这里找到相关文档:Gemspec#executables

© www.soinside.com 2019 - 2024. All rights reserved.