class BraceComb::MigrationGenerator

Installs job dependencies migrations

Private Class Methods

next_migration_number(dirname) click to toggle source
# File lib/generators/brace_comb/migration_generator.rb, line 38
def self.next_migration_number(dirname)
  ::ActiveRecord::Generators::Base.next_migration_number(dirname)
end

Public Instance Methods

create_migration_file() click to toggle source
# File lib/generators/brace_comb/migration_generator.rb, line 10
def create_migration_file
  add_migrations(dependent_table_name, 'create_dependent')
  add_migrations(dependency_table_name, 'create_dependencies')
  add_migrations('associations', 'add_associations')
end

Private Instance Methods

add_migrations(table_name, template) click to toggle source
# File lib/generators/brace_comb/migration_generator.rb, line 18
def add_migrations(table_name, template)
  migration_dir = File.expand_path("db/migrate")
  migration_name = table_name || template
  if migration_exists?(migration_dir, migration_name)
    ::Kernel.warn "Migration already exists: #{migration_name}"
  else
    migration_template(
      "#{template}.rb.erb",
      "db/migrate/create_#{migration_name.pluralize}.rb",
      migration_version: migration_version
    )
  end
end
migration_exists?(migration_dir, table_name) click to toggle source
# File lib/generators/brace_comb/migration_generator.rb, line 32
def migration_exists?(migration_dir, table_name)
  [table_name.singularize, table_name.pluralize].any? do |table|
    self.class.migration_exists?(migration_dir, "create_#{table}")
  end
end
migration_version() click to toggle source
# File lib/generators/brace_comb/migration_generator.rb, line 42
def migration_version
  major = ActiveRecord::VERSION::MAJOR
  "[#{major}.#{ActiveRecord::VERSION::MINOR}]" if major >= 5
end