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