Class: RuboCop::Cop::Rails::ReversibleMigrationMethodDefinition

Inherits:
Base
  • Object
show all
Defined in:
lib/rubocop/cop/rails/reversible_migration_method_definition.rb

Overview

This cop checks whether the migration implements either a `change` method or both an `up` and a `down` method.

Examples:

# bad
class SomeMigration < ActiveRecord::Migration[6.0]
  def up
    # up migration
  end

  # <----- missing down method
end

class SomeMigration < ActiveRecord::Migration[6.0]
  # <----- missing up method

  def down
    # down migration
  end
end

# good
class SomeMigration < ActiveRecord::Migration[6.0]
  def change
    # reversible migration
  end
end

# good
class SomeMigration < ActiveRecord::Migration[6.0]
  def up
    # up migration
  end

  def down
    # down migration
  end
end

Constant Summary collapse

MSG =
'Migrations must contain either a `change` method, or ' \
'both an `up` and a `down` method.'

Instance Method Summary collapse

Instance Method Details

#on_class(node) ⇒ Object



67
68
69
70
71
# File 'lib/rubocop/cop/rails/reversible_migration_method_definition.rb', line 67

def on_class(node)
  return if change_method?(node) || up_and_down_methods?(node)

  add_offense(node)
end