class Smooth::Event::Relay

Attributes

event_name[R]
options[R]
system[R]

Public Class Methods

new(event_name, options = {}) click to toggle source
# File lib/smooth/event/relay.rb, line 11
def initialize(event_name, options = {})
  @event_name = event_name
  @options    = options
  @system     = options.fetch(:system, Smooth::Event)

  enable
end

Public Instance Methods

enable() click to toggle source
# File lib/smooth/event/relay.rb, line 28
def enable
  @subscriber ||= system.subscribe_to(event_name, &method(:process_and_relay))
end
process(event, event_name = nil) click to toggle source
# File lib/smooth/event/relay.rb, line 24
def process(event, event_name = nil)
  [event, event_name]
end
process_and_relay(event, event_name = nil) click to toggle source
# File lib/smooth/event/relay.rb, line 32
def process_and_relay(event, event_name = nil)
  event, event_name = process(event, event_name)
  relay(event, event_name)
end
relay(_event, _event_name = nil) click to toggle source
# File lib/smooth/event/relay.rb, line 19
def relay(_event, _event_name = nil)
  # IMPLEMENT IN YOUR OWN CLASS
  fail NotImplementedError
end