Sha256: a4ca9e1d89b226f96fcbe1b9124f819ac5e54208312dd5db2643f99c90e589d2
Contents?: true
Size: 1.18 KB
Versions: 22
Compression:
Stored size: 1.18 KB
Contents
module ActiveScaffold module DelayedSetup def self.included(base) base.extend ClassMethods end def process(*) self.class.config_active_scaffold_delayed super end module ClassMethods def active_scaffold(model_id = nil, &block) @delayed_monitor ||= Monitor.new @active_scaffold_delayed = proc do begin @_prefixes = nil # clean prefixes in case is already cached, so our local_prefixes override is picked up super(model_id, &block) @active_scaffold_delayed = @delayed_monitor = nil # after configuring, no need to keep proc or monitor rescue StandardError # clear config variable if failed, so next request tries again @active_scaffold_config = nil raise end end end def config_active_scaffold_delayed @delayed_monitor&.synchronize do # if called in same thread while running config, do nothing @active_scaffold_delayed&.call unless @active_scaffold_config end end def active_scaffold_config config_active_scaffold_delayed super end end end end
Version data entries
22 entries across 22 versions & 1 rubygems