Sha256: d74b4454578485de318fdd2a4b2d98227a7fc7a8e85f85e986fec8121492585c

Contents?: true

Size: 1.08 KB

Versions: 5

Compression:

Stored size: 1.08 KB

Contents

require 'rails/generators'
require 'rails/generators/migration'
require 'rails/generators/active_record'

class VanityGenerator < Rails::Generators::Base
  include Rails::Generators::Migration
  source_root File.expand_path('../templates', __dir__)

  def self.next_migration_number(path)
    ::ActiveRecord::Generators::Base.next_migration_number(path)
  end

  def create_migration_file
    migration_template "vanity_migration.rb.erb", destination("vanity_migration.rb"), migration_version: migration_version
    migration_template "add_unique_indexes_migration.rb.erb", destination("add_vanity_unique_indexes.rb"), migration_version: migration_version
    migration_template "add_participants_unique_index_migration.rb.erb", destination("add_participants_unique_index_migration.rb"), migration_version: migration_version
  end

  private

  def destination(name)
    File.join(Rails.root, 'db', 'migrate', name)
  end

  def versioned?
    ActiveRecord::VERSION::MAJOR >= 5
  end

  def migration_version
    "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]" if versioned?
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vanity-4.0.4 lib/generators/vanity/migration_generator.rb
vanity-4.0.3 lib/generators/vanity/migration_generator.rb
vanity-4.0.2 lib/generators/vanity/migration_generator.rb
vanity-4.0.1 lib/generators/vanity/migration_generator.rb
vanity-4.0.0 lib/generators/vanity/migration_generator.rb