class ActionView::CacheExpiry::Executor
Public Class Methods
new(watcher:)
click to toggle source
# File lib/action_view/cache_expiry.rb, line 6 def initialize(watcher:) @execution_lock = Concurrent::ReentrantReadWriteLock.new @cache_expiry = ViewModificationWatcher.new(watcher: watcher) do clear_cache end end
Public Instance Methods
complete(_)
click to toggle source
# File lib/action_view/cache_expiry.rb, line 20 def complete(_) @execution_lock.release_read_lock end
run()
click to toggle source
# File lib/action_view/cache_expiry.rb, line 13 def run ActiveSupport::Dependencies.interlock.permit_concurrent_loads do @cache_expiry.execute_if_updated @execution_lock.acquire_read_lock end end
Private Instance Methods
clear_cache()
click to toggle source
# File lib/action_view/cache_expiry.rb, line 25 def clear_cache @execution_lock.with_write_lock do ActionView::LookupContext::DetailsKey.clear end end