Class: Easyop::Events::Bus::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/easyop/events/bus.rb

Overview

Abstract base for bus adapters.

Subclasses must implement:

#publish(event)          — deliver event to matching subscribers
#subscribe(pattern, &block) — register a handler block

Optionally override:

#unsubscribe(handle)     — remove a subscription (handle is return value of #subscribe)

Direct Known Subclasses

ActiveSupportNotifications, Adapter, Custom, Memory

Instance Method Summary collapse

Instance Method Details

#publish(event) ⇒ Object

Parameters:

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/easyop/events/bus.rb', line 18

def publish(event)
  raise NotImplementedError, "#{self.class}#publish must be implemented"
end

#subscribe(pattern) {|event| ... } ⇒ Object

Returns subscription handle (adapter-specific).

Parameters:

  • pattern (String, Regexp)

    event name, glob (“order.*”), or Regexp

Yields:

  • (event)

    called when a matching event is published

Returns:

  • (Object)

    subscription handle (adapter-specific)

Raises:

  • (NotImplementedError)


25
26
27
# File 'lib/easyop/events/bus.rb', line 25

def subscribe(pattern, &block)
  raise NotImplementedError, "#{self.class}#subscribe must be implemented"
end

#unsubscribe(handle) ⇒ Object

Remove a subscription created by #subscribe.

Parameters:

  • handle (Object)

    the value returned by #subscribe



31
32
33
# File 'lib/easyop/events/bus.rb', line 31

def unsubscribe(handle)
  # default no-op — adapters may override
end