namespace :acts_as_living do
desc 'Install' task install_migration: :environment do options = {} OptionParser.new do |opts| opts.banner = 'Usage: rake add [options]' opts.on('-m', '--model ARG', String) { |model| options[:model] = model } opts.on('-s', '--stages ARG', Array) { |stages| options[:stages] = stages } end.parse! migration_name = "add_life_stages_to_#{options[:model]}" timestamps_code = stages.map { |stage| "#{stage}_at:datetime" }.join(' ') stages_code = 'stage:integer past_stages:string{array: true, default: []}' system "rails g migration #{migration_name} #{stages_code} #{timestamps_code}" end
end