class Resugan::Kernel
Public Class Methods
clear()
click to toggle source
# File lib/resugan/kernel.rb, line 92 def self.clear @listener_ids.clear if @listener_ids @_listener.clear if @_listener end
config() { |config| ... }
click to toggle source
# File lib/resugan/kernel.rb, line 14 def self.config @config ||= Resugan::Config.new if block_given? yield @config end @config end
default_dispatcher()
click to toggle source
# File lib/resugan/kernel.rb, line 39 def self.default_dispatcher config.default_dispatcher end
dispatcher_for(namespace = '')
click to toggle source
# File lib/resugan/kernel.rb, line 43 def self.dispatcher_for(namespace = '') @dispatchers = {} unless @dispatchers @dispatchers[namespace.to_s] || default_dispatcher.new end
invoke(namespace, event, payload = [])
click to toggle source
# File lib/resugan/kernel.rb, line 79 def self.invoke(namespace, event, payload = []) event = "#{namespace}_#{event}".to_sym if @_listener && @_listener[event] @_listener[event].each do |_listener| _listener.call(payload.map { |p| p[:params] || p['params'] }) end end end
line_trace_enabled?()
click to toggle source
# File lib/resugan/kernel.rb, line 31 def self.line_trace_enabled? config.line_trace_enabled end
listeners()
click to toggle source
# File lib/resugan/kernel.rb, line 88 def self.listeners @_listener end
register(event, &block)
click to toggle source
# File lib/resugan/kernel.rb, line 53 def self.register(event, &block) register_with_namespace("", event, block) end
register_dispatcher(dispatcher, namespace = '')
click to toggle source
# File lib/resugan/kernel.rb, line 48 def self.register_dispatcher(dispatcher, namespace = '') @dispatchers = {} unless @dispatchers @dispatchers[namespace.to_s] = (dispatcher.is_a?(Class) ? dispatcher.new : dispatcher) end
register_with_namespace(namespaces, event_type, listener_id = nil, block)
click to toggle source
# File lib/resugan/kernel.rb, line 57 def self.register_with_namespace(namespaces, event_type, listener_id = nil, block) @listener_ids = {} unless @listener_ids @_listener = {} unless @_listener namespaces = namespaces.is_a?(Array) ? namespaces : [namespaces] namespaces.each do |n| next if listener_id && @listener_ids["#{n}_#{listener_id}"] event = "#{n}_#{event_type}".to_sym unless @_listener[event] @_listener[event] = [block] else @_listener[event] << block end @listener_ids["#{n}_#{listener_id}"] = block if listener_id end self end
reuse_top_level_context?()
click to toggle source
# File lib/resugan/kernel.rb, line 23 def self.reuse_top_level_context? config.reuse_top_level_context end
set_default_dispatcher(dispatcher)
click to toggle source
# File lib/resugan/kernel.rb, line 35 def self.set_default_dispatcher(dispatcher) config.default_dispatcher = dispatcher end
warn_no_context_events?()
click to toggle source
# File lib/resugan/kernel.rb, line 27 def self.warn_no_context_events? config.warn_no_context_events end