Class: ActiveSupport::Notifications::Fanout::Subscribers::Evented
- Defined in:
- lib/active_support/notifications/fanout.rb
Overview
:nodoc:
Direct Known Subclasses
Instance Attribute Summary collapse
-
#delegate ⇒ Object
readonly
Returns the value of attribute delegate.
-
#pattern ⇒ Object
readonly
Returns the value of attribute pattern.
-
#silenceable ⇒ Object
readonly
Returns the value of attribute silenceable.
Instance Method Summary collapse
- #group_class ⇒ Object
-
#initialize(pattern, delegate) ⇒ Evented
constructor
A new instance of Evented.
- #publish(name, *args) ⇒ Object
- #publish_event(event) ⇒ Object
- #silenced?(name) ⇒ Boolean
- #subscribed_to?(name) ⇒ Boolean
- #unsubscribe!(name) ⇒ Object
Constructor Details
#initialize(pattern, delegate) ⇒ Evented
Returns a new instance of Evented.
379 380 381 382 383 384 385 |
# File 'lib/active_support/notifications/fanout.rb', line 379 def initialize(pattern, delegate) @pattern = Matcher.wrap(pattern) @delegate = delegate @silenceable = delegate.respond_to?(:silenced?) @can_publish = delegate.respond_to?(:publish) @can_publish_event = delegate.respond_to?(:publish_event) end |
Instance Attribute Details
#delegate ⇒ Object (readonly)
Returns the value of attribute delegate.
377 378 379 |
# File 'lib/active_support/notifications/fanout.rb', line 377 def delegate @delegate end |
#pattern ⇒ Object (readonly)
Returns the value of attribute pattern.
377 378 379 |
# File 'lib/active_support/notifications/fanout.rb', line 377 def pattern @pattern end |
#silenceable ⇒ Object (readonly)
Returns the value of attribute silenceable.
377 378 379 |
# File 'lib/active_support/notifications/fanout.rb', line 377 def silenceable @silenceable end |
Instance Method Details
#group_class ⇒ Object
387 388 389 |
# File 'lib/active_support/notifications/fanout.rb', line 387 def group_class EventedGroup end |
#publish(name, *args) ⇒ Object
391 392 393 394 395 |
# File 'lib/active_support/notifications/fanout.rb', line 391 def publish(name, *args) if @can_publish @delegate.publish name, *args end end |
#publish_event(event) ⇒ Object
397 398 399 400 401 402 403 |
# File 'lib/active_support/notifications/fanout.rb', line 397 def publish_event(event) if @can_publish_event @delegate.publish_event event else publish(event.name, event.time, event.end, event.transaction_id, event.payload) end end |
#silenced?(name) ⇒ Boolean
405 406 407 |
# File 'lib/active_support/notifications/fanout.rb', line 405 def silenced?(name) @silenceable && @delegate.silenced?(name) end |
#subscribed_to?(name) ⇒ Boolean
409 410 411 |
# File 'lib/active_support/notifications/fanout.rb', line 409 def subscribed_to?(name) pattern === name end |
#unsubscribe!(name) ⇒ Object
413 414 415 |
# File 'lib/active_support/notifications/fanout.rb', line 413 def unsubscribe!(name) pattern.unsubscribe!(name) end |