目的/動機
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