Class: Mailgun::Tracking::Notifier

Inherits:
Object
  • Object
show all
Defined in:
lib/mailgun/tracking/notifier.rb

Overview

Wraps the Listener which gives a friendlier way to subscribe or broadcast.

Instance Method Summary collapse

Constructor Details

#initialize(listener = Listener.new) ⇒ Mailgun::Tracking::Notifier

Initializes a new Notifier object.

Parameters:



10
11
12
# File 'lib/mailgun/tracking/notifier.rb', line 10

def initialize(listener = Listener.new)
  @listener ||= listener
end

Instance Method Details

#all(callable = Proc.new) ⇒ NilClass

Adds a subscriber for all events.

Parameters:

  • callable (Proc, Class) (defaults to: Proc.new)

    The listener of event. The callable objects should respond to call.

Returns:

  • (NilClass)


38
39
40
# File 'lib/mailgun/tracking/notifier.rb', line 38

def all(callable = Proc.new)
  listener.add_subscriber(nil, callable)
end

#broadcast(event, payload) ⇒ NilClass

Broadcasts parameters to event subscribers.

Parameters:

  • event (String)

    The name of event.

  • payload (Hash)

    The response parameters.

Returns:

  • (NilClass)


48
49
50
51
# File 'lib/mailgun/tracking/notifier.rb', line 48

def broadcast(event, payload)
  Signature.verify!(payload)
  listener.broadcast(event, payload)
end

#empty?Boolean

Returns true if there is at least one subscriber.

Returns:

  • (Boolean)


17
18
19
# File 'lib/mailgun/tracking/notifier.rb', line 17

def empty?
  listener.subscribers.empty?
end

#subscribe(event, callable = Proc.new) ⇒ NilClass

Adds subscriber for the specified event.

Parameters:

  • event (Symbol, String)

    The name of event.

  • callable (Proc, Class) (defaults to: Proc.new)

    The listener of event. The callable objects should respond to call.

Returns:

  • (NilClass)


28
29
30
# File 'lib/mailgun/tracking/notifier.rb', line 28

def subscribe(event, callable = Proc.new)
  listener.add_subscriber(event, callable)
end