如何为不在 Gem 中的生成器命名



我很困惑。

我使用的一个名为railsy_backbone的gem提供了甜美的名称空间生成器。从命令行我可以调用它们,因此,

$ rails g backbone:model widget

现在,是我制作甜蜜发电机的时候了,但我在命名方面遇到了麻烦。我做过研究,读过这个,这个,甚至这个。我最终得到的结构是:

lib/generators/
└── marionette
    └── model
        ├── model_generator.rb
        ├── templates
        └── USAGE

model_generator.rb的内容是,

module Marionette
  module Generators
    class ModelGenerator < Rails::Generators::NamedBase
      source_root File.expand_path('../templates', __FILE__)
    end
  end
end

这反映了我读过的所有例子。为了进行比较,这里是lib/generators——railsy_backbone gem:的部分树

generators/
└── backbone
    ├── bob
    │   ├── bob_generator.rb
    │   └── templates
    │       └── model.coffee
    ├── helpers.rb
    ├── model
    │   ├── model_generator.rb
    │   └── templates
    │       └── model.coffee

实际上,我自己添加了backbone:bob,当我在没有参数的情况下运行rails g时,它随后显示在命名空间主干下的生成器列表中。这里也是model_generator.rb、的内容

require 'generators/backbone/helpers'
module Backbone
  module Generators
    class ModelGenerator < Rails::Generators::NamedBase
      include Backbone::Generators::Helpers
      source_root File.expand_path("../templates", __FILE__)
      // the implementation
    end
  end
end

我能看到的我的代码和他们的代码之间的唯一区别是,他们将生成器打包在了一个gem中。我的发电机位于我目前正在开发的rails应用程序中。现在我已经放弃了,我只想做一堆顶级生成器。最终,当我准备好使用它们时,我会将它们打包为gem并安装它。我希望这会奏效。然而,我真的很想知道如何在不让生成器存在于gem中的情况下命名生成器。有人有相关经验吗?

使用:

$ rails generate generator your_gem_name/generator_name

然后检查:

$ rails generate your_gem_name:generator_name --help

相关内容

  • 没有找到相关文章

最新更新