Class: ActiveRecord::Migration::CheckPending
- Inherits:
-
Object
- Object
- ActiveRecord::Migration::CheckPending
- Defined in:
- lib/active_record/migration.rb
Overview
This class is used to verify that all migrations have been run before loading a web page if config.active_record.migration_error
is set to :page_load
.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, file_watcher: ActiveSupport::FileUpdateChecker) ⇒ CheckPending
constructor
A new instance of CheckPending.
Constructor Details
#initialize(app, file_watcher: ActiveSupport::FileUpdateChecker) ⇒ CheckPending
Returns a new instance of CheckPending.
616 617 618 619 620 621 |
# File 'lib/active_record/migration.rb', line 616 def initialize(app, file_watcher: ActiveSupport::FileUpdateChecker) @app = app @needs_check = true @mutex = Mutex.new @file_watcher = file_watcher end |
Instance Method Details
#call(env) ⇒ Object
623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 |
# File 'lib/active_record/migration.rb', line 623 def call(env) @mutex.synchronize do @watcher ||= build_watcher do @needs_check = true ActiveRecord::Migration.check_pending!(connection) @needs_check = false end if @needs_check @watcher.execute else @watcher.execute_if_updated end end @app.call(env) end |