module RuboCop::Rails::MigrationFileSkippable
def self.apply_to_cops!
def self.apply_to_cops! RuboCop::Cop::Registry.all.each { |cop| cop.prepend(MigrationFileSkippable) } end
def add_global_offense(message = nil, severity: nil)
def add_global_offense(message = nil, severity: nil) return if already_migrated_file? super if method(__method__).super_method end
def add_offense(node_or_range, message: nil, severity: nil, &block)
def add_offense(node_or_range, message: nil, severity: nil, &block) return if already_migrated_file? super if method(__method__).super_method end
def already_migrated_file?
def already_migrated_file? return false unless migrated_schema_version match_data = File.basename(processed_source.file_path).match(/(?<timestamp>\d{14})/) schema_version = match_data['timestamp'] if match_data return false unless schema_version schema_version <= migrated_schema_version.to_s # Ignore applied migration files. end
def migrated_schema_version
def migrated_schema_version @migrated_schema_version ||= config.for_all_cops.fetch('MigratedSchemaVersion', nil) end