edge badge
Methods
E
I
M
O
R
S
Instance Public methods
existing_migration()
Also aliased as: exists?
# File railties/lib/rails/generators/actions/create_migration.rb, line 32
def existing_migration
  @existing_migration ||= begin
    @base.class.migration_exists?(migration_dir, migration_file_name) ||
    File.exist?(@destination) && @destination
  end
end
exists?()
Alias for: existing_migration
identical?()
# File railties/lib/rails/generators/actions/create_migration.rb, line 16
def identical?
  exists? && File.binread(existing_migration) == render
end
migration_dir()
# File railties/lib/rails/generators/actions/create_migration.rb, line 8
def migration_dir
  File.dirname(@destination)
end
migration_file_name()
# File railties/lib/rails/generators/actions/create_migration.rb, line 12
def migration_file_name
  @base.migration_file_name
end
relative_existing_migration()
# File railties/lib/rails/generators/actions/create_migration.rb, line 28
def relative_existing_migration
  base.relative_to_original_destination_root(existing_migration)
end
revoke!()
# File railties/lib/rails/generators/actions/create_migration.rb, line 20
def revoke!
  say_destination = exists? ? relative_existing_migration : relative_destination
  say_status :remove, :red, say_destination
  return unless exists?
  ::FileUtils.rm_rf(existing_migration) unless pretend?
  existing_migration
end
Instance Protected methods
on_conflict_behavior()
# File railties/lib/rails/generators/actions/create_migration.rb, line 42
def on_conflict_behavior
  options = base.options.merge(config)
  if identical?
    say_status :identical, :blue, relative_existing_migration
  elsif options[:force]
    say_status :remove, :green, relative_existing_migration
    say_status :create, :green
    unless pretend?
      ::FileUtils.rm_rf(existing_migration)
      yield
    end
  elsif options[:skip]
    say_status :skip, :yellow
  else
    say_status :conflict, :red
    raise Error, "Another migration is already named #{migration_file_name}: " +
      "#{existing_migration}. Use --force to replace this migration " +
      "or --skip to ignore conflicted file."
  end
end
say_status(status, color, message = relative_destination)
# File railties/lib/rails/generators/actions/create_migration.rb, line 63
def say_status(status, color, message = relative_destination)
  base.shell.say_status(status, message, color) if config[:verbose]
end