From 5766e0661dd39198bdafeb53678830df4c3c5e3e Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Thu, 6 Oct 2016 19:14:57 +0100 Subject: Memoize ActiveRecord::Migrator.migrations in tests --- config/initializers/ar_speed_up_migration_checking.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 config/initializers/ar_speed_up_migration_checking.rb diff --git a/config/initializers/ar_speed_up_migration_checking.rb b/config/initializers/ar_speed_up_migration_checking.rb new file mode 100644 index 00000000000..1fe5defc01d --- /dev/null +++ b/config/initializers/ar_speed_up_migration_checking.rb @@ -0,0 +1,18 @@ +if Rails.env.test? + require 'active_record/migration' + + module ActiveRecord + class Migrator + class << self + alias_method :migrations_unmemoized, :migrations + + # This method is called a large number of times per rspec example, and + # it reads + parses `db/migrate/*` each time. Memoizing it can save 0.5 + # seconds per spec. + def migrations(paths) + @migrations ||= migrations_unmemoized(paths) + end + end + end + end +end -- cgit v1.2.1