Class: RuboCop::Cop::Rails::ReversibleMigration
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Rails::ReversibleMigration
- Extended by:
- TargetRailsVersion
- Includes:
- MigrationsHelper
- Defined in:
- lib/rubocop/cop/rails/reversible_migration.rb
Overview
Checks whether the change method of the migration file is reversible.
Constant Summary collapse
- MSG =
'%<action>s is not reversible.'
Constants included from TargetRailsVersion
TargetRailsVersion::DEFAULT_RAILS_VERSION, TargetRailsVersion::TARGET_GEM_NAME, TargetRailsVersion::USES_REQUIRES_GEM_API
Instance Method Summary collapse
- #on_block(node) ⇒ Object (also: #on_numblock, #on_itblock)
- #on_send(node) ⇒ Object
Methods included from TargetRailsVersion
extended, minimum_target_rails_version, resolve, support_target_rails_version?
Methods included from MigrationsHelper
Instance Method Details
#on_block(node) ⇒ Object Also known as: on_numblock, on_itblock
200 201 202 203 204 205 206 |
# File 'lib/rubocop/cop/rails/reversible_migration.rb', line 200 def on_block(node) return unless in_migration?(node) && within_change_method?(node) return if within_reversible_or_up_only_block?(node) return if node.body.nil? check_change_table_node(node.send_node, node.body) end |
#on_send(node) ⇒ Object
187 188 189 190 191 192 193 194 195 196 197 198 |
# File 'lib/rubocop/cop/rails/reversible_migration.rb', line 187 def on_send(node) return unless in_migration?(node) && within_change_method?(node) return if within_reversible_or_up_only_block?(node) check_irreversible_schema_statement_node(node) check_drop_table_node(node) check_reversible_hash_node(node) check_remove_column_node(node) check_remove_foreign_key_node(node) check_remove_columns_node(node) check_remove_index_node(node) end |