【发布时间】:2010-06-22 09:37:48
【问题描述】:
我正在尝试使用 Rails 3(beta 4)的生成器创建 gem。我关注了these instructions,但我无法让它运行。问题是,当我在生成器文件中定义模块时,生成器会以“rails generate”列出,但由于找不到生成器而无法执行。
根据说明(不适用于“rails generate my_gem:install”):
module MyGem
class InstallGenerator < Rails::Generators::Base
source_root File.expand_path("../templates", __FILE__)
# all public methods in here will be run in order
def add_my_initializer
template "initializer.rb", "config/initializers/my_gem_initializer.rb"
end
end
end
已修改(与 'rails generate install 一起使用):
class InstallGenerator < Rails::Generators::Base
source_root File.expand_path("../templates", __FILE__)
# all public methods in here will be run in order
def add_my_initializer
template "initializer.rb", "config/initializers/my_gem_initializer.rb"
end
end
但是,我想为生成器提供命名空间,例如company:gem_name:generator,为此我必须使用模块方法(我认为)。我的猜测是它与查找和目录结构有关,但我不知道如何。我尝试了几种方法:
lib
-generators
--my_gem.rb
lib
-generators
--company
---my_gem.rb
lib
-generators
--company
---my_gem_name
----my_gem.rb
但没有任何帮助。我在网上也找到了不少,但没有显示出我需要的东西。
【问题讨论】:
标签: ruby rubygems ruby-on-rails-plugins ruby-on-rails-3