class Pronto::RailsMigrations

def bad_structure_sql_messages

def bad_structure_sql_messages
  patch = structure_sql_patches.first
  return [] unless patch
  structure_sql = File.read(patch.new_file_full_path)
  inserts = structure_sql.split("\n").grep(/\('\d+'\)/)
  unordered_inserts = (inserts.sort != inserts)
  *all_but_tail, tail = inserts
  bad_semicolons = all_but_tail.any? { |line| line.end_with?(';') } || !tail.end_with?(';')
  bad_ending = structure_sql[-4, 4] !~ /[^\n]\n\n\n/
  messages = []
  if unordered_inserts
    messages << message(
      patch,
      '`schema_migrations` insert values are not ordered by timestamp.'
    )
  end
  if bad_semicolons
    messages << message(
      patch,
      '`schema_migrations` inserts must end with comma (`,`), ' \
      'last insert must end with semicolon (`;`).'
    )
  end
  messages << message(patch, '`db/structure.sql` must end with 2 empty lines.') if bad_ending
  messages
end