paper-trail-gem--paper_trail/lib/generators/paper_trail/migration_generator.rb

39 lines
1.0 KiB
Ruby

# frozen_string_literal: true
require "rails/generators"
require "rails/generators/active_record"
module PaperTrail
# Basic structure to support a generator that builds a migration
class MigrationGenerator < ::Rails::Generators::Base
include ::Rails::Generators::Migration
def self.next_migration_number(dirname)
::ActiveRecord::Generators::Base.next_migration_number(dirname)
end
protected
def add_paper_trail_migration(template, extra_options = {})
migration_dir = File.expand_path("db/migrate")
if self.class.migration_exists?(migration_dir, template)
::Kernel.warn "Migration already exists: #{template}"
else
migration_template(
"#{template}.rb.erb",
"db/migrate/#{template}.rb",
{ migration_version: migration_version }.merge(extra_options)
)
end
end
def migration_version
format(
"[%d.%d]",
ActiveRecord::VERSION::MAJOR,
ActiveRecord::VERSION::MINOR
)
end
end
end