evil_events 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +17 -1
- data/.travis.yml +1 -1
- data/CHANGELOG.md +29 -1
- data/evil_events.gemspec +17 -16
- data/lib/evil_events.rb +3 -1
- data/lib/evil_events/application.rb +16 -0
- data/lib/evil_events/config.rb +23 -6
- data/lib/evil_events/{adapters.rb → config/adapters.rb} +4 -4
- data/lib/evil_events/config/types.rb +24 -0
- data/lib/evil_events/core.rb +1 -0
- data/lib/evil_events/core/bootstrap.rb +1 -1
- data/lib/evil_events/core/broadcasting/emitter.rb +1 -1
- data/lib/evil_events/core/error.rb +8 -0
- data/lib/evil_events/core/events.rb +3 -0
- data/lib/evil_events/core/events/abstract_event.rb +2 -0
- data/lib/evil_events/core/events/event_extensions/class_signature.rb +30 -0
- data/lib/evil_events/core/events/event_extensions/class_signature/equalizer.rb +82 -0
- data/lib/evil_events/core/events/event_extensions/class_signature/signature.rb +70 -0
- data/lib/evil_events/core/events/event_extensions/metadata_extendable.rb +16 -4
- data/lib/evil_events/core/events/event_extensions/payloadable.rb +16 -4
- data/lib/evil_events/core/events/event_extensions/type_aliasing.rb +1 -1
- data/lib/evil_events/core/events/event_factory.rb +7 -2
- data/lib/evil_events/core/events/manager.rb +1 -1
- data/lib/evil_events/core/events/manager/notifier.rb +2 -1
- data/lib/evil_events/core/events/manager_factory.rb +1 -1
- data/lib/evil_events/core/events/manager_registry.rb +39 -2
- data/lib/evil_events/core/events/serializers.rb +2 -1
- data/lib/evil_events/core/events/subscriber/mixin.rb +20 -11
- data/lib/evil_events/core/system.rb +16 -0
- data/lib/evil_events/core/system/event_manager.rb +33 -3
- data/lib/evil_events/core/system/mock.rb +20 -0
- data/lib/evil_events/core/system/type_manager.rb +35 -0
- data/lib/evil_events/plugins.rb +33 -0
- data/lib/evil_events/plugins/elastic_search.rb +6 -0
- data/lib/evil_events/plugins/rails.rb +6 -0
- data/lib/evil_events/shared.rb +4 -0
- data/lib/evil_events/shared/crypto.rb +1 -1
- data/lib/evil_events/shared/type_converter.rb +43 -0
- data/lib/evil_events/shared/type_converter/converter.rb +45 -0
- data/lib/evil_events/shared/type_converter/converter_registry.rb +51 -0
- data/lib/evil_events/shared/type_converter/type_builder.rb +51 -0
- data/lib/evil_events/version.rb +2 -2
- metadata +73 -59
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EvilEvents::Core::Events::EventExtensions::ClassSignature
|
4
|
+
# @api private
|
5
|
+
# @since 0.2.0
|
6
|
+
class Signature
|
7
|
+
# @return [Class{EvilEvents::Core::Events::AbstractEvent}]
|
8
|
+
#
|
9
|
+
# @since 0.2.0
|
10
|
+
attr_reader :event_class
|
11
|
+
|
12
|
+
# @param event_calass [Class{EvilEvents::Core::Events::AbstractEvent}]
|
13
|
+
#
|
14
|
+
# @since 0.2.0
|
15
|
+
def initialize(event_class)
|
16
|
+
@event_class = event_class
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [Hash]
|
20
|
+
#
|
21
|
+
# @since 0.2.0
|
22
|
+
def payload_stamp
|
23
|
+
event_class::Payload.schema
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [Hash]
|
27
|
+
#
|
28
|
+
# @since 0.2.0
|
29
|
+
def metadata_stamp
|
30
|
+
event_class::Metadata.schema
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Hash]
|
34
|
+
#
|
35
|
+
# @since 0.2.0
|
36
|
+
def class_stamp
|
37
|
+
{ name: event_class.name, creation_strategy: event_class.__creation_strategy }
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [String]
|
41
|
+
#
|
42
|
+
# @since 0.2.0
|
43
|
+
def type_alias_stamp
|
44
|
+
event_class.type
|
45
|
+
end
|
46
|
+
|
47
|
+
# @return [Symbol,String]
|
48
|
+
#
|
49
|
+
# @since 0.2.0
|
50
|
+
def delegator_stamp
|
51
|
+
event_class.default_delegator
|
52
|
+
end
|
53
|
+
|
54
|
+
# @return [Hash]
|
55
|
+
#
|
56
|
+
# @since 0.2.0
|
57
|
+
def adapter_stamp
|
58
|
+
{ event_class.adapter_name => event_class.adapter }
|
59
|
+
end
|
60
|
+
|
61
|
+
# @param other [Signature]
|
62
|
+
# @return [Boolean]
|
63
|
+
#
|
64
|
+
# @since 0.2.0
|
65
|
+
def ==(other)
|
66
|
+
Equalizer.new(self, other).similar_signatures?
|
67
|
+
end
|
68
|
+
alias_method :eql?, :==
|
69
|
+
end
|
70
|
+
end
|
@@ -19,7 +19,7 @@ module EvilEvents::Core::Events::EventExtensions
|
|
19
19
|
#
|
20
20
|
# @since 0.1.0
|
21
21
|
def build_metadata(**metadata_attributes)
|
22
|
-
self.class.
|
22
|
+
self.class.metadata_class.new(**metadata_attributes)
|
23
23
|
end
|
24
24
|
|
25
25
|
# @since 0.1.0
|
@@ -32,20 +32,32 @@ module EvilEvents::Core::Events::EventExtensions
|
|
32
32
|
super
|
33
33
|
end
|
34
34
|
|
35
|
+
# @return [Class{AbstractMetadata}]
|
36
|
+
#
|
37
|
+
# @since 0.2.0
|
38
|
+
def metadata_class
|
39
|
+
const_get(:Metadata)
|
40
|
+
end
|
41
|
+
|
35
42
|
# @param key [Symbol]
|
36
43
|
# @param type [EvilEvents::Shared::Types::Any]
|
44
|
+
# @param options [Hash]
|
37
45
|
# @return void
|
38
46
|
#
|
39
47
|
# @since 0.1.0
|
40
|
-
def metadata(key, type = EvilEvents::Types::Any)
|
41
|
-
|
48
|
+
def metadata(key, type = EvilEvents::Types::Any, **options)
|
49
|
+
if type.is_a?(Symbol)
|
50
|
+
type = EvilEvents::Core::Bootstrap[:event_system].resolve_type(type, **options)
|
51
|
+
end
|
52
|
+
|
53
|
+
metadata_class.attribute(key, type)
|
42
54
|
end
|
43
55
|
|
44
56
|
# @return [Array<Symbol>]
|
45
57
|
#
|
46
58
|
# @since 0.1.0
|
47
59
|
def metadata_fields
|
48
|
-
|
60
|
+
metadata_class.attribute_names
|
49
61
|
end
|
50
62
|
end
|
51
63
|
end
|
@@ -19,7 +19,7 @@ module EvilEvents::Core::Events::EventExtensions
|
|
19
19
|
#
|
20
20
|
# @since 0.1.0
|
21
21
|
def build_payload(**payload_attributes)
|
22
|
-
self.class.
|
22
|
+
self.class.payload_class.new(**payload_attributes)
|
23
23
|
end
|
24
24
|
|
25
25
|
# @since 0.1.0
|
@@ -32,20 +32,32 @@ module EvilEvents::Core::Events::EventExtensions
|
|
32
32
|
super
|
33
33
|
end
|
34
34
|
|
35
|
+
# @return [Class{AbstractPayload}]
|
36
|
+
#
|
37
|
+
# @since 0.2.0
|
38
|
+
def payload_class
|
39
|
+
const_get(:Payload)
|
40
|
+
end
|
41
|
+
|
35
42
|
# @param key [Symbol]
|
36
43
|
# @param type [EvilEvents::Shared::Types::Any]
|
44
|
+
# @param options [Hash]
|
37
45
|
# @return void
|
38
46
|
#
|
39
47
|
# @since 0.1.0
|
40
|
-
def payload(key, type = EvilEvents::Types::Any)
|
41
|
-
|
48
|
+
def payload(key, type = EvilEvents::Types::Any, **options)
|
49
|
+
if type.is_a?(Symbol)
|
50
|
+
type = EvilEvents::Core::Bootstrap[:event_system].resolve_type(type, **options)
|
51
|
+
end
|
52
|
+
|
53
|
+
payload_class.attribute(key, type)
|
42
54
|
end
|
43
55
|
|
44
56
|
# @return [Array<Symbol>]
|
45
57
|
#
|
46
58
|
# @since 0.1.0
|
47
59
|
def payload_fields
|
48
|
-
|
60
|
+
payload_class.attribute_names
|
49
61
|
end
|
50
62
|
end
|
51
63
|
end
|
@@ -5,7 +5,7 @@ module EvilEvents::Core::Events::EventExtensions
|
|
5
5
|
# @since 0.1.0
|
6
6
|
module TypeAliasing
|
7
7
|
# @since 0.1.0
|
8
|
-
TypeAliasingError = Class.new(
|
8
|
+
TypeAliasingError = Class.new(EvilEvents::Core::Error)
|
9
9
|
# @since 0.1.0
|
10
10
|
IncopatibleEventTypeError = Class.new(TypeAliasingError)
|
11
11
|
# @since 0.1.0
|
@@ -5,7 +5,9 @@ module EvilEvents::Core::Events
|
|
5
5
|
# @since 0.1.1
|
6
6
|
module EventFactory
|
7
7
|
# @since 0.1.1
|
8
|
-
UNDEFINED_EVENT_ID
|
8
|
+
UNDEFINED_EVENT_ID = 'unknown'
|
9
|
+
CLASS_INHERITANCE_STRATEGY = :class_inheritance
|
10
|
+
PROC_EVAL_STRATEGY = :proc_eval
|
9
11
|
|
10
12
|
module_function
|
11
13
|
|
@@ -17,10 +19,12 @@ module EvilEvents::Core::Events
|
|
17
19
|
def create_abstract_class(event_type)
|
18
20
|
Class.new(AbstractEvent).tap do |klass|
|
19
21
|
klass.type(event_type)
|
22
|
+
klass.__creation_strategy = CLASS_INHERITANCE_STRATEGY
|
20
23
|
|
21
24
|
class << klass
|
22
25
|
def inherited(child_class)
|
23
26
|
child_class.type(type)
|
27
|
+
child_class.__creation_strategy = CLASS_INHERITANCE_STRATEGY
|
24
28
|
child_class.manage!
|
25
29
|
rescue EvilEvents::Core::Events::ManagerRegistry::AlreadyManagedEventClassError
|
26
30
|
EvilEvents::Core::Bootstrap[:event_system].unregister_event_class(child_class)
|
@@ -40,10 +44,11 @@ module EvilEvents::Core::Events
|
|
40
44
|
def create_class(event_type, &event_class_definitions)
|
41
45
|
Class.new(AbstractEvent).tap do |klass|
|
42
46
|
begin
|
47
|
+
klass.__creation_strategy = PROC_EVAL_STRATEGY
|
43
48
|
klass.type(event_type)
|
44
49
|
klass.manage!
|
45
50
|
klass.evaluate(&event_class_definitions) if block_given?
|
46
|
-
rescue
|
51
|
+
rescue StandardError
|
47
52
|
EvilEvents::Core::Bootstrap[:event_system].unregister_event_class(klass)
|
48
53
|
raise
|
49
54
|
end
|
@@ -5,7 +5,7 @@ module EvilEvents::Core::Events
|
|
5
5
|
# @since 0.1.0
|
6
6
|
class Manager
|
7
7
|
# @since 0.1.0
|
8
|
-
ManagerError = Class.new(
|
8
|
+
ManagerError = Class.new(EvilEvents::Core::Error)
|
9
9
|
# @since 0.1.0
|
10
10
|
InconsistentEventClassError = Class.new(ManagerError)
|
11
11
|
# @since 0.1.0
|
@@ -5,7 +5,7 @@ class EvilEvents::Core::Events::Manager
|
|
5
5
|
# @since 0.1.0
|
6
6
|
module Notifier
|
7
7
|
# @since 0.1.0
|
8
|
-
NotifierError = Class.new(
|
8
|
+
NotifierError = Class.new(EvilEvents::Core::Error)
|
9
9
|
# @since 0.1.0
|
10
10
|
InconsistentEventClassError = Class.new(NotifierError)
|
11
11
|
|
@@ -14,6 +14,7 @@ class EvilEvents::Core::Events::Manager
|
|
14
14
|
# @since 0.1.0
|
15
15
|
extend Forwardable
|
16
16
|
|
17
|
+
# @since 0.1.0
|
17
18
|
def_delegators :errors_stack, :<<, :empty?
|
18
19
|
|
19
20
|
# @return [Concurrent::Array]
|
@@ -5,7 +5,7 @@ module EvilEvents::Core::Events
|
|
5
5
|
# @since 0.1.0
|
6
6
|
module ManagerFactory
|
7
7
|
# @since 0.1.0
|
8
|
-
ManagerFactoryError = Class.new(
|
8
|
+
ManagerFactoryError = Class.new(EvilEvents::Core::Error)
|
9
9
|
# @since 0.1.0
|
10
10
|
IncorrectEventClassError = Class.new(ManagerFactoryError)
|
11
11
|
|
@@ -8,7 +8,7 @@ module EvilEvents::Core::Events
|
|
8
8
|
extend Forwardable
|
9
9
|
|
10
10
|
# @since 0.1.0
|
11
|
-
ManagerRegistryError = Class.new(
|
11
|
+
ManagerRegistryError = Class.new(EvilEvents::Core::Error)
|
12
12
|
# @since 0.1.0
|
13
13
|
IncorrectManagerObjectError = Class.new(ManagerRegistryError)
|
14
14
|
# @since 0.1.0
|
@@ -16,6 +16,7 @@ module EvilEvents::Core::Events
|
|
16
16
|
# @since 0.1.0
|
17
17
|
AlreadyManagedEventClassError = Class.new(ManagerRegistryError)
|
18
18
|
|
19
|
+
# @since 0.1.0
|
19
20
|
def_delegators :managers, :empty?, :size
|
20
21
|
|
21
22
|
# @return [Concurrent::Map]
|
@@ -44,10 +45,37 @@ module EvilEvents::Core::Events
|
|
44
45
|
#
|
45
46
|
# @since 0.1.0
|
46
47
|
def manager_of_event_type(event_type)
|
47
|
-
event_class = managed_events.find
|
48
|
+
event_class = managed_events.find do |managed_event|
|
49
|
+
managed_event.type == event_type
|
50
|
+
end
|
51
|
+
|
48
52
|
manager_of_event(event_class)
|
49
53
|
end
|
50
54
|
|
55
|
+
# @param event_pattern [Regexp]
|
56
|
+
# @return [Array<EvilEvents::Core::Events::Manager>]
|
57
|
+
#
|
58
|
+
# @since 0.2.0
|
59
|
+
def managers_of_event_pattern(event_pattern)
|
60
|
+
event_classes = managed_events.select do |managed_event|
|
61
|
+
managed_event.type.match(event_pattern)
|
62
|
+
end
|
63
|
+
|
64
|
+
event_classes.map { |event_class| manager_of_event(event_class) }
|
65
|
+
end
|
66
|
+
|
67
|
+
# @param event_condition [Proc]
|
68
|
+
# @return [Array<EvilEvents::Core::Event::Manager>]
|
69
|
+
#
|
70
|
+
# @since 0.2.0
|
71
|
+
def managers_of_event_condition(event_condition)
|
72
|
+
event_classes = managed_events.select do |managed_event|
|
73
|
+
!!event_condition.call(managed_event.type)
|
74
|
+
end
|
75
|
+
|
76
|
+
event_classes.map { |event_class| manager_of_event(event_class) }
|
77
|
+
end
|
78
|
+
|
51
79
|
# @param manager [EvilEvents::Core::Events::Manager]
|
52
80
|
# @raise [IncorrectManagerObjectError]
|
53
81
|
# @raise [AlreadyManagedEventClassError]
|
@@ -105,6 +133,15 @@ module EvilEvents::Core::Events
|
|
105
133
|
managers.key?(event_class)
|
106
134
|
end
|
107
135
|
|
136
|
+
# @return [Hash]
|
137
|
+
#
|
138
|
+
# @since 0.2.0
|
139
|
+
def managed_events_map
|
140
|
+
managed_events.each_with_object({}) do |event, accumulator|
|
141
|
+
accumulator[event.type] = event
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
108
145
|
private
|
109
146
|
|
110
147
|
# @return [Array<EvilEvents::Core::Events::AbstractEvent>]
|
@@ -4,10 +4,11 @@ module EvilEvents::Core::Events
|
|
4
4
|
# @api private
|
5
5
|
# @since 0.1.0
|
6
6
|
class Serializers
|
7
|
+
# @since 0.1.0
|
7
8
|
extend EvilEvents::Shared::DependencyContainer::Mixin
|
8
9
|
|
9
10
|
# @since 0.1.0
|
10
|
-
SerializersError = Class.new(
|
11
|
+
SerializersError = Class.new(EvilEvents::Core::Error)
|
11
12
|
# @since 0.1.0
|
12
13
|
SerializationError = Class.new(SerializersError)
|
13
14
|
# @since 0.1.0
|
@@ -4,19 +4,28 @@ class EvilEvents::Core::Events::Subscriber
|
|
4
4
|
# @api public
|
5
5
|
# @since 0.1.0
|
6
6
|
Mixin = EvilEvents::Shared::ClonableModuleBuilder.build do
|
7
|
-
# @param event_type [String, Class{EvilEvents::Core::Events::AbstractEvent}]
|
7
|
+
# @param event_type [Array<String, Class{EvilEvents::Core::Events::AbstractEvent}, Regexp>]
|
8
8
|
# @param delegator [String, Symbol, NilClass]
|
9
|
-
# @raise [
|
9
|
+
# @raise [EvilEvents::Core::ArgumentError]
|
10
10
|
#
|
11
|
-
# @since 0.
|
12
|
-
def subscribe_to(
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
11
|
+
# @since 0.2.0
|
12
|
+
def subscribe_to(*event_types, delegator: nil)
|
13
|
+
raise EvilEvents::Core::ArgumentError unless event_types.all? do |event_type|
|
14
|
+
event_type.is_a?(Class) ||
|
15
|
+
event_type.is_a?(String) ||
|
16
|
+
event_type.is_a?(Regexp) ||
|
17
|
+
event_type.is_a?(Proc)
|
18
|
+
end
|
19
|
+
|
20
|
+
event_system = EvilEvents::Core::Bootstrap[:event_system]
|
21
|
+
|
22
|
+
event_types.each do |event_type|
|
23
|
+
case event_type
|
24
|
+
when Class then event_system.observe(event_type, self, delegator)
|
25
|
+
when String then event_system.raw_observe(event_type, self, delegator)
|
26
|
+
when Regexp then event_system.observe_list(event_type, self, delegator)
|
27
|
+
when Proc then event_system.conditional_observe(event_type, self, delegator)
|
28
|
+
end
|
20
29
|
end
|
21
30
|
end
|
22
31
|
end
|
@@ -9,6 +9,7 @@ module EvilEvents::Core
|
|
9
9
|
require_relative 'system/broadcaster'
|
10
10
|
require_relative 'system/event_builder'
|
11
11
|
require_relative 'system/event_manager'
|
12
|
+
require_relative 'system/type_manager'
|
12
13
|
|
13
14
|
# @since 0.1.0
|
14
15
|
extend Forwardable
|
@@ -28,11 +29,14 @@ module EvilEvents::Core
|
|
28
29
|
def_delegators :event_manager,
|
29
30
|
:observe,
|
30
31
|
:raw_observe,
|
32
|
+
:observe_list,
|
33
|
+
:conditional_observe,
|
31
34
|
:observers,
|
32
35
|
:register_event_class,
|
33
36
|
:unregister_event_class,
|
34
37
|
:manager_of_event,
|
35
38
|
:manager_of_event_type,
|
39
|
+
:registered_events,
|
36
40
|
:resolve_event_class,
|
37
41
|
:resolve_event_object,
|
38
42
|
:managed_event?
|
@@ -45,6 +49,12 @@ module EvilEvents::Core
|
|
45
49
|
:deserialize_from_json,
|
46
50
|
:deserialize_from_hash
|
47
51
|
|
52
|
+
# @see EvilEvents::Core::System::TypeManager
|
53
|
+
# @since 0.2.0
|
54
|
+
def_delegators :type_manager,
|
55
|
+
:register_converter,
|
56
|
+
:resolve_type
|
57
|
+
|
48
58
|
# @return [EvilEvents::Core::System::Broadcaster]
|
49
59
|
#
|
50
60
|
# @since 0.1.0
|
@@ -55,10 +65,16 @@ module EvilEvents::Core
|
|
55
65
|
# @since 0.1.0
|
56
66
|
attr_reader :event_manager
|
57
67
|
|
68
|
+
# @return [EvilEvents::Core::System::TypeManager]
|
69
|
+
#
|
70
|
+
# @since 0.2.0
|
71
|
+
attr_reader :type_manager
|
72
|
+
|
58
73
|
# @since 0.1.0
|
59
74
|
def initialize
|
60
75
|
@broadcaster = Broadcaster.new
|
61
76
|
@event_manager = EventManager.new
|
77
|
+
@type_manager = TypeManager.new
|
62
78
|
end
|
63
79
|
end
|
64
80
|
end
|
@@ -14,7 +14,7 @@ class EvilEvents::Core::System
|
|
14
14
|
end
|
15
15
|
|
16
16
|
# @param event_class [Class{Evilevents::Core::Events::AbstractEvent}]
|
17
|
-
# @param raw_subscriber [
|
17
|
+
# @param raw_subscriber [Mixed]
|
18
18
|
# @param delegator [String, Symbol, NilClass]
|
19
19
|
# @return void
|
20
20
|
#
|
@@ -25,7 +25,7 @@ class EvilEvents::Core::System
|
|
25
25
|
end
|
26
26
|
|
27
27
|
# @param event_type [String, Symbol]
|
28
|
-
# @param raw_subscriber [
|
28
|
+
# @param raw_subscriber [Mixed]
|
29
29
|
# @param delegator [String, Symbol, NilClass]
|
30
30
|
# @return void
|
31
31
|
#
|
@@ -35,6 +35,28 @@ class EvilEvents::Core::System
|
|
35
35
|
.observe(raw_subscriber, delegator)
|
36
36
|
end
|
37
37
|
|
38
|
+
# @param event_pattern [Regexp]
|
39
|
+
# @param raw_subscriber [Mixed]
|
40
|
+
# @param delegator [String, Symbol, NilClass]
|
41
|
+
# @return void
|
42
|
+
#
|
43
|
+
# @since 0.2.0
|
44
|
+
def observe_list(event_pattern, raw_subscriber, delegator)
|
45
|
+
manager_registry.managers_of_event_pattern(event_pattern)
|
46
|
+
.each { |manager| manager.observe(raw_subscriber, delegator) }
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param event_condition [Proc]
|
50
|
+
# @param raw_subscriber [Mixed]
|
51
|
+
# @param delegator [String, Symbol, NilClass]
|
52
|
+
# @return void
|
53
|
+
#
|
54
|
+
# @since 0.2.0
|
55
|
+
def conditional_observe(event_condition, raw_subscriber, delegator)
|
56
|
+
manager_registry.managers_of_event_condition(event_condition)
|
57
|
+
.each { |manager| manager.observe(raw_subscriber, delegator) }
|
58
|
+
end
|
59
|
+
|
38
60
|
# @param event_class [Class{EvilEvents::Core::Events::AbstractEvent}]
|
39
61
|
# @return [Array<EvilEvents::Core::Events::Subscriber>]
|
40
62
|
#
|
@@ -76,11 +98,12 @@ class EvilEvents::Core::System
|
|
76
98
|
end
|
77
99
|
|
78
100
|
# @param event_type [String]
|
101
|
+
# @option id [String,NilClass]
|
79
102
|
# @option payload [Hash]
|
80
103
|
# @option metadata [Hash]
|
81
104
|
# @return [EvilEvents::Core::Events::AbstractEvent]
|
82
105
|
#
|
83
|
-
# @since 0.1.
|
106
|
+
# @since 0.1.1
|
84
107
|
def resolve_event_object(event_type, id: nil, payload: {}, metadata: {})
|
85
108
|
manager_of_event_type(event_type).event_class.new(
|
86
109
|
id: id, payload: payload, metadata: metadata
|
@@ -95,6 +118,13 @@ class EvilEvents::Core::System
|
|
95
118
|
manager_of_event_type(event_type).event_class
|
96
119
|
end
|
97
120
|
|
121
|
+
# @return [Hash]
|
122
|
+
#
|
123
|
+
# @since 0.2.0
|
124
|
+
def registered_events
|
125
|
+
manager_registry.managed_events_map
|
126
|
+
end
|
127
|
+
|
98
128
|
# @param event_class [EvilEvents::Core::Events::AbstractEvent]
|
99
129
|
# @return [Boolean]
|
100
130
|
#
|