class Railjet::Listener
Public Class Methods
listen_to(event, &block)
click to toggle source
# File lib/railjet/bus.rb, line 52 def listen_to(event, &block) subscriptions << event define_listeners(event, &block) end
sidekiq_options(options = {})
click to toggle source
# File lib/railjet/bus.rb, line 57 def sidekiq_options(options = {}) if options.present? self.sidekiq_options_hash = self.sidekiq_options_hash.merge(options.stringify_keys) else self.sidekiq_options_hash end end
subscriptions()
click to toggle source
# File lib/railjet/bus.rb, line 48 def subscriptions @subscriptions ||= [] end
Private Class Methods
define_listener(event, &block)
click to toggle source
# File lib/railjet/bus.rb, line 72 def define_listener(event, &block) define_method listener_name(event) do |**kwargs| around_listener(event, **kwargs) { |**kwargs| instance_exec(**kwargs, &block) } end end
define_listener_caller(event)
click to toggle source
# File lib/railjet/bus.rb, line 78 def define_listener_caller(event) name = listener_name(event) define_singleton_method name do |**kwargs| new.public_send(name, **kwargs) end end
define_listeners(event, &block)
click to toggle source
# File lib/railjet/bus.rb, line 67 def define_listeners(event, &block) define_listener(event, &block) define_listener_caller(event) end
listener_name(event)
click to toggle source
# File lib/railjet/bus.rb, line 85 def listener_name(event) "on_#{event}" end
Public Instance Methods
around_listener(event, **kwargs) { |**kwargs| ... }
click to toggle source
This around block does nothing but it's there as point of extensions so it could be easily overridden in sub-class if some additional setup is needed
# File lib/railjet/bus.rb, line 93 def around_listener(event, **kwargs) yield(**kwargs) end