class EvilEvents::Core::System::EventManager
@api private @since 0.1.0
Attributes
@return [EvilEvents::Core::Events::ManagerRegistry]
@since 0.1.0
Public Class Methods
# File lib/evil_events/core/system/event_manager.rb, line 12 def initialize @manager_registry = EvilEvents::Core::Events::ManagerRegistry.new end
Public Instance Methods
@param event_condition [Proc] @param raw_subscriber [Mixed] @param delegator [String, Symbol, NilClass] @return void
@since 0.2.0
# File lib/evil_events/core/system/event_manager.rb, line 67 def conditional_observe(event_condition, raw_subscriber, delegator) manager_registry.managers_of_event_condition(event_condition) .each { |manager| manager.observe(raw_subscriber, delegator) } end
@param event_class [EvilEvents::Core::Events::AbstractEvent] @return [Boolean]
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 144 def managed_event?(event_class) manager_registry.managed_event?(event_class) end
@param event [EvilEvents::Core::Events::AbstractEvent] @return [EvilEvents::Core::Events::Manager]
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 100 def manager_of_event(event) manager_registry.manager_of_event(event.class) end
@param event_type [String] @return [EvilEvents::Core::Events::Manager]
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 108 def manager_of_event_type(event_type) manager_registry.manager_of_event_type(event_type) end
@param event_class [Class{Evilevents::Core::Events::AbstractEvent}] @param raw_subscriber [Mixed] @param delegator [String, Symbol, NilClass] @return void
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 22 def observe(event_class, raw_subscriber, delegator) manager_registry.manager_of_event(event_class) .observe(raw_subscriber, delegator) end
@param event_pattern [Regexp] @param raw_subscriber [Mixed] @param delegator [String, Symbol, NilClass] @return void
@since 0.2.0
# File lib/evil_events/core/system/event_manager.rb, line 56 def observe_list(event_pattern, raw_subscriber, delegator) manager_registry.managers_of_event_pattern(event_pattern) .each { |manager| manager.observe(raw_subscriber, delegator) } end
@param event_class [Class{EvilEvents::Core::Events::AbstractEvent}] @return [Array<EvilEvents::Core::Events::Subscriber>]
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 76 def observers(event_class) manager_registry.manager_of_event(event_class).subscribers end
@param event_type [String, Symbol] @param raw_subscriber [Mixed] @param delegator [String, Symbol, NilClass] @return void
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 33 def raw_observe(event_type, raw_subscriber, delegator) manager_registry.manager_of_event_type(event_type) .observe(raw_subscriber, delegator) end
@param event_class [Class{EvilEvents::Core::Events::AbstractEvent}] @return void
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 84 def register_event_class(event_class) manager_registry.register_with(event_class) end
@return [Hash]
@since 0.2.0
# File lib/evil_events/core/system/event_manager.rb, line 136 def registered_events manager_registry.managed_events_map end
@param event_type [String] @return [Class{EvilEvents::Core::Events::AbstractEvent}]
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 129 def resolve_event_class(event_type) manager_of_event_type(event_type).event_class end
@param event_type [String] @option id [String,NilClass] @option payload [Hash] @option metadata [Hash] @return [EvilEvents::Core::Events::AbstractEvent]
@since 0.1.1
# File lib/evil_events/core/system/event_manager.rb, line 119 def resolve_event_object(event_type, id: nil, payload: {}, metadata: {}) manager_of_event_type(event_type).event_class.new( id: id, payload: payload, metadata: metadata ) end
@param scoped_event_type [String] @param raw_subscriber [Mixed] @param delegator [String, Symbol, NilClass] @return void
@api private @since 0.4.0
# File lib/evil_events/core/system/event_manager.rb, line 45 def scoped_observe(scoped_event_type, raw_subscriber, delegator) manager_registry.managers_of_scoped_event_type(scoped_event_type) .each { |manager| manager.observe(raw_subscriber, delegator) } end
@param event_class [Class{EvilEvents::Core::events::AbstractEvent}] @return void
@since 0.1.0
# File lib/evil_events/core/system/event_manager.rb, line 92 def unregister_event_class(event_class) manager_registry.unregister_with(event_class) end