ruby - 让 gem 的 rake 任务随处可用?

标签 ruby rake

因此,我正在编写一个小 gem,其中有一个“/tasks”目录,其中包含一些特定的 rake 任务。如何在需要 gem 的任何地方自动执行这些任务?例如,我希望在安装 gem 后,我可以在我的 rails 根目录中运行“rake mygemrake:task”。

最佳答案

对于 Rails3 应用程序,您可能需要考虑为您的 gem 制作 Railtie。

您可以这样做:

lib/your_gem/railtie.rb

require 'your_gem'
require 'rails'
module YourGem
  class Railtie < Rails::Railtie
    rake_tasks do
      require 'path/to/rake.task'
    end
  end
end

lib/your_gem.rb

module YourGem
  require "lib/your_gem/railtie" if defined?(Rails)
end

不过,我在要求 railtie.rb 中的 rake.task 文件时遇到了一些困难。我选择只在 rake_tasks block 中定义我的 measley 一两个任务。

关于ruby - 让 gem 的 rake 任务随处可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/742633/

相关文章:

arrays - 如何将逗号分隔的字符串转换为数组

ruby-on-rails - 如何生成 CSV 文件?

ruby - 为什么 Enumerable 在 Ruby 中没有长度属性?

ruby-on-rails - 删除数据库中除最后 x 行以外的所有行

ruby-on-rails - Ruby On Rails - Myspace 应用程序开发

ruby - Ruby 哈希的增量

mysql - Ruby on Rails-迁移数据库时出现套接字错误

ruby-on-rails - 如何让我的 rake 任务让 Jenkins 知道构建失败了?

ruby - 使用 JRuby 或 bundle exec 时如何使用 rspec 启用颜色?

mysql - rails : rake aborted due to an already existing table but can't remove it