Я пытаюсь создать гем с генератором для Rails 3 (бета 4). Я следовал этим инструкциям , но не смог его запустить. Проблема в том, что когда я определяю модуль в файле генератора, генератор попадает в список с именем '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
Однако я хочу иметь пространства имен для генератора, например, компания: gem_name: генератор, для которого я должен использовать модульный подход (я думаю). Я предполагаю, что это как-то связано с поиском и структурой каталогов, но я не мог понять, как. Я попробовал пару подходов:
lib
-generators
--my_gem.rb
lib
-generators
--company
---my_gem.rb
lib
-generators
--company
---my_gem_name
----my_gem.rb
но ничего не помогло. Я также нашел немного в Интернете, но не показывал, что мне нужно.