Module: Superglue::Broadcastable::ClassMethods

Defined in:
app/models/concerns/superglue/broadcastable.rb

Instance Method Summary collapse

Instance Method Details

#broadcast_target_defaultObject



23
24
25
# File 'app/models/concerns/superglue/broadcastable.rb', line 23

def broadcast_target_default
  model_name.plural
end

#broadcasts(stream = model_name.plural, inserts_by: :append, target: broadcast_target_default, save_target: nil, **rendering) ⇒ Object



18
19
20
21
# File 'app/models/concerns/superglue/broadcastable.rb', line 18

def broadcasts(stream = model_name.plural, inserts_by: :append, target: broadcast_target_default, save_target: nil, **rendering)
  after_create_commit -> { broadcast_action_later_to(stream, action: inserts_by, target: target.try(:call, self) || target, save_target: save_target&.try(:call, self), **rendering) }
  after_update_commit -> { broadcast_update_later(**rendering) }
end

#broadcasts_to(stream, inserts_by: :append, target: broadcast_target_default, save_target: nil, **rendering) ⇒ Object



13
14
15
16
# File 'app/models/concerns/superglue/broadcastable.rb', line 13

def broadcasts_to(stream, inserts_by: :append, target: broadcast_target_default, save_target: nil, **rendering)
  after_create_commit -> { broadcast_action_later_to(stream.try(:call, self) || send(stream), action: inserts_by, target: target.try(:call, self) || target, save_target: save_target&.try(:call, self), **rendering) }
  after_update_commit -> { broadcast_update_later_to(stream.try(:call, self) || send(stream), **rendering) }
end

#suppressed_superglue_broadcasts?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/models/concerns/superglue/broadcastable.rb', line 34

def suppressed_superglue_broadcasts?
  suppressed_superglue_broadcasts
end

#suppressing_superglue_broadcasts(&block) ⇒ Object



27
28
29
30
31
32
# File 'app/models/concerns/superglue/broadcastable.rb', line 27

def suppressing_superglue_broadcasts(&block)
  original, self.suppressed_superglue_broadcasts = suppressed_superglue_broadcasts, true
  yield
ensure
  self.suppressed_superglue_broadcasts = original
end