Module: Julewire::RailsSupport::EventReporter
- Defined in:
- lib/julewire/rails_support/event_reporter.rb
Class Method Summary collapse
- .default ⇒ Object
- .subscribable?(reporter) ⇒ Boolean
- .subscribe(reporter, subscriber) ⇒ Object
- .unsubscribe_log_subscriber(subscriber_class, reporter: default) ⇒ Object
- .unsubscriber(reporter, subscriber) ⇒ Object
Class Method Details
.default ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/julewire/rails_support/event_reporter.rb', line 7 def default rails = top_level_constant(:Rails) return rails.event if rails.respond_to?(:event) active_support = top_level_constant(:ActiveSupport) return unless active_support.respond_to?(:event_reporter) active_support.event_reporter end |
.subscribable?(reporter) ⇒ Boolean
24 25 26 |
# File 'lib/julewire/rails_support/event_reporter.rb', line 24 def subscribable?(reporter) reporter.respond_to?(:subscribe) end |
.subscribe(reporter, subscriber) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/julewire/rails_support/event_reporter.rb', line 17 def subscribe(reporter, subscriber, &) return unless subscribable?(reporter) reporter.subscribe(subscriber, &) unsubscriber(reporter, subscriber) end |
.unsubscribe_log_subscriber(subscriber_class, reporter: default) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/julewire/rails_support/event_reporter.rb', line 32 def unsubscribe_log_subscriber(subscriber_class, reporter: default) return unless reporter.respond_to?(:unsubscribe) return unless log_subscriber?(subscriber_class) reporter.unsubscribe(subscriber_class) end |
.unsubscriber(reporter, subscriber) ⇒ Object
28 29 30 |
# File 'lib/julewire/rails_support/event_reporter.rb', line 28 def unsubscriber(reporter, subscriber) -> { reporter.unsubscribe(subscriber) if reporter.respond_to?(:unsubscribe) } end |