Module: Superglue::Broadcastable::ClassMethods
- Defined in:
- app/models/concerns/superglue/broadcastable.rb
Instance Method Summary collapse
- #broadcast_target_default ⇒ Object
- #broadcasts(stream = model_name.plural, inserts_by: :append, target: broadcast_target_default, save_target: nil, **rendering) ⇒ Object
- #broadcasts_to(stream, inserts_by: :append, target: broadcast_target_default, save_target: nil, **rendering) ⇒ Object
- #suppressed_superglue_broadcasts? ⇒ Boolean
- #suppressing_superglue_broadcasts(&block) ⇒ Object
Instance Method Details
#broadcast_target_default ⇒ Object
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
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 |