diff --git a/app/models/concerns/cable_ready/updatable.rb b/app/models/concerns/cable_ready/updatable.rb index 375476f4..9814e9e7 100644 --- a/app/models/concerns/cable_ready/updatable.rb +++ b/app/models/concerns/cable_ready/updatable.rb @@ -206,15 +206,13 @@ def broadcast_updates(model_class, options) return if skip_updates_classes.any? { |klass| klass >= self } raise("ActionCable must be enabled to use Updatable") unless defined?(ActionCable) - @debounce_time ||= 0.seconds - - if @debounce_time > 0.seconds + if debounce_time > 0.seconds key = compound([model_class, *options]) old_wait_until = CableReady::Updatable.debounce_adapter[key] now = Time.now.to_f if old_wait_until.nil? || old_wait_until < now - new_wait_until = now + @debounce_time.to_f + new_wait_until = now + debounce_time.to_f CableReady::Updatable.debounce_adapter[key] = new_wait_until ActionCable.server.broadcast(model_class, options) end @@ -223,6 +221,10 @@ def broadcast_updates(model_class, options) end end + def debounce_time + @debounce_time ||= 0.seconds + end + def skip_updates_classes Thread.current[:skip_updates_classes] ||= [] end