RSpec::Matchers.define :be_a_migration do
  match do |file_path|
    dirname, file_name = File.dirname(file_path), File.basename(file_path)

    if file_name =~ /\d+_.*\.rb/
      migration_file_path = file_path
    else
      migration_file_path = Dir.glob("#{dirname}/[0-9]*_*.rb").grep(/\d+_#{file_name}$/).first
    end
    migration_file_path && File.exist?(migration_file_path)
  end
end