目的/動機
Rails用gemを作成した時に
作成したgem用のファイルを新規作成したり、
.gitignoreに特定のファイルを追加したかった。
他のgem(figaro, devise, rspec)だと
rails generate xxx:install
でそれらしいことをしているが、
調べても簡単に目的のページに辿り着けなかったので、ここにまとめた。
事前定義
自分が作ったgemのモジュール名を仮に Xxx としておく。
xxx:install の定義
xxx/lib/generators/xxx/install/install_generator.rb
require "rails"
module Xxx
  # Base=引数は自由に取れる NamedBase=引数を一つ取る
  class InstallGenerator < ::Rails::Generators::Base
    # インスタンスメソッドが順番に実行されるので、
    # test1
    # test2
    # test3
    # と標準出力に表示される
    def test1
      puts "test1"
    end
    
    def test2
      puts "test2"
    end
    
    def test3
      puts "test3"
    end
  end
end
Generatorの実行
Gemfile
gem "xxx"
bundle install
rails generate xxx:install