module StrongMigrations module Migration def migrate(direction) strong_migrations_checker.direction = direction super end def method_missing(method, *args) strong_migrations_checker.perform(method, *args) do super end end def safety_assured strong_migrations_checker.safety_assured do yield end end def stop!(message, header: "Custom check") raise StrongMigrations::UnsafeMigration, "\n=== #{header} #strong_migrations ===\n\n#{message}\n" end private def strong_migrations_checker @strong_migrations_checker ||= StrongMigrations::Checker.new(self) end end end