class EvilEvents::Core::System::EventManager

@api private @since 0.1.0

Attributes

manager_registry[R]

@return [EvilEvents::Core::Events::ManagerRegistry]

@since 0.1.0

Public Class Methods

new() click to toggle source
# File lib/evil_events/core/system/event_manager.rb, line 12
def initialize
  @manager_registry = EvilEvents::Core::Events::ManagerRegistry.new
end

Public Instance Methods

conditional_observe(event_condition, raw_subscriber, delegator) click to toggle source

@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
managed_event?(event_class) click to toggle source

@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
manager_of_event(event) click to toggle source

@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
manager_of_event_type(event_type) click to toggle source

@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
observe(event_class, raw_subscriber, delegator) click to toggle source

@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
observe_list(event_pattern, raw_subscriber, delegator) click to toggle source

@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
observers(event_class) click to toggle source

@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
raw_observe(event_type, raw_subscriber, delegator) click to toggle source

@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
register_event_class(event_class) click to toggle source

@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
registered_events() click to toggle source

@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
resolve_event_class(event_type) click to toggle source

@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
resolve_event_object(event_type, id: nil, payload: {}, metadata: {}) click to toggle source

@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
scoped_observe(scoped_event_type, raw_subscriber, delegator) click to toggle source

@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
unregister_event_class(event_class) click to toggle source

@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