【发布时间】:2013-05-26 19:28:34
【问题描述】:
我有一个标准的 gem 脚手架,在 bin 目录中我有一个简单的可执行文件 (bin/do_things.rb):
#!/usr/bin/env ruby
require 'my_gem'
MyGem::doThings()
gem 尚未通过gem install 安装,因此在没有bundle exec 的情况下运行bin/do_things.rb 会失败(我的Gemfile 中包含gemspec 行)。
有没有一种简单的方法让 rubygems-bundler 在捆绑器上下文中执行我的脚本?我应该只修改可执行文件中的$LOAD_PATH 吗?
我也可以创建一个包装脚本以在 Bundler 下执行,但我宁愿以某种方式利用 rubygems-bundler。
或者我应该只输入bundle exec?
【问题讨论】:
-
你能澄清你的脚本的目的吗?它是您仅在开发中使用的东西还是您的 gem 用户使用的东西?无论如何,我不建议直接在可执行文件中修改你的加载路径。
-
安装后,gem 可执行文件的目的是做一些 shell 实用程序的东西——在我的例子中,移动一些文件。安装后用户可以访问它。