Class: EvilEvents::Core::System::EventManager Private

Inherits:
Object
  • Object
show all
Defined in:
lib/evil_events/core/system/event_manager.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Since:

  • 0.1.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEventManager

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of EventManager.

Since:

  • 0.1.0


12
13
14
# File 'lib/evil_events/core/system/event_manager.rb', line 12

def initialize
  @manager_registry = EvilEvents::Core::Events::ManagerRegistry.new
end

Instance Attribute Details

#manager_registryEvilEvents::Core::Events::ManagerRegistry (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


10
11
12
# File 'lib/evil_events/core/system/event_manager.rb', line 10

def manager_registry
  @manager_registry
end

Instance Method Details

#conditional_observe(event_condition, raw_subscriber, delegator) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns void.

Parameters:

  • event_condition (Proc)
  • raw_subscriber (Mixed)
  • delegator (String, Symbol, NilClass)

Returns:

  • void

Since:

  • 0.2.0


67
68
69
70
# 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) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

Returns:

  • (Boolean)

Since:

  • 0.1.0


144
145
146
# 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) ⇒ EvilEvents::Core::Events::Manager

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


100
101
102
# 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) ⇒ EvilEvents::Core::Events::Manager

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • event_type (String)

Returns:

Since:

  • 0.1.0


108
109
110
# 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) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns void.

Parameters:

  • event_class (Class{Evilevents::Core::Events::AbstractEvent})
  • raw_subscriber (Mixed)
  • delegator (String, Symbol, NilClass)

Returns:

  • void

Since:

  • 0.1.0


22
23
24
25
# 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) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns void.

Parameters:

  • event_pattern (Regexp)
  • raw_subscriber (Mixed)
  • delegator (String, Symbol, NilClass)

Returns:

  • void

Since:

  • 0.2.0


56
57
58
59
# 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) ⇒ Array<EvilEvents::Core::Events::Subscriber>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

Returns:

Since:

  • 0.1.0


76
77
78
# 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) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns void.

Parameters:

  • event_type (String, Symbol)
  • raw_subscriber (Mixed)
  • delegator (String, Symbol, NilClass)

Returns:

  • void

Since:

  • 0.1.0


33
34
35
36
# 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) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns void.

Parameters:

Returns:

  • void

Since:

  • 0.1.0


84
85
86
# 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_eventsHash

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Hash)

Since:

  • 0.2.0


136
137
138
# 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) ⇒ Class{EvilEvents::Core::Events::AbstractEvent}

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • event_type (String)

Returns:

Since:

  • 0.1.0


129
130
131
# 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: {}) ⇒ EvilEvents::Core::Events::AbstractEvent

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • event_type (String)
  • id (Hash) (defaults to: nil)

    a customizable set of options

  • payload (Hash) (defaults to: {})

    a customizable set of options

  • metadata (Hash) (defaults to: {})

    a customizable set of options

Options Hash (id:):

  • (String, NilClass)

Options Hash (payload:):

  • (Hash)

Options Hash (metadata:):

  • (Hash)

Returns:

Since:

  • 0.1.1


119
120
121
122
123
# 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: 
  )
end

#scoped_observe(scoped_event_type, raw_subscriber, delegator) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns void.

Parameters:

  • scoped_event_type (String)
  • raw_subscriber (Mixed)
  • delegator (String, Symbol, NilClass)

Returns:

  • void

Since:

  • 0.4.0


45
46
47
48
# 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) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns void.

Parameters:

  • event_class (Class{EvilEvents::Core::events::AbstractEvent})

Returns:

  • void

Since:

  • 0.1.0


92
93
94
# File 'lib/evil_events/core/system/event_manager.rb', line 92

def unregister_event_class(event_class)
  manager_registry.unregister_with(event_class)
end