【问题标题】:How to extract thor task into gem and run it from bin?如何将雷神任务提取到 gem 中并从 bin 中运行?
【发布时间】:2013-09-09 03:42:33
【问题描述】:

我在一个雷神课程中有雷神任务。我想将它提取到 my_gem 并像 bin 一样使用它。有可能的?现在我将此任务移动到 lib/my_gem/thor/tasks 并将 Thorfile 添加到 gem,然后我在 my_gem/bin 中创建 my_gem.rb,但它不起作用。如果有人知道另一种方法,请帮助。谢谢!

【问题讨论】:

  • 如果您添加一些有关您的 my_gem.gemspec 的详细信息,我可以通过将 gem.executables 的设置方式与您编写 gemspec 的方式相匹配来改进我的答案 - 显示您如何管理 gem 的files 属性应该足够了,再加上更清晰的描述,你将可执行文件放在哪里。

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4


【解决方案1】:

是的,这是可能的,你需要添加这个,或者类似于你的my_gem.gemspec(这适用于bundle gem创建的gem,并且已经分配了文件列表):

Gem::Specification.new do |gem|
  # All the other usual stuff, e.g.  gem.files  = `git ls-files`.split($/)
  gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
end

然后,可执行文件应在 gem install(或 bundle install 等)上得到正确处理,并放在您的路径上。

同样重要:可执行脚本应该启动

#!/usr/bin/env ruby

.rb 扩展名是可选的,通常在命令行脚本中省略,否则您需要在调用脚本时键入它。

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 2010-10-09
    • 2010-11-03
    相关资源
    最近更新 更多