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