evil_events 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.rubocop.yml +10 -1
- data/.travis.yml +4 -5
- data/CHANGELOG.md +73 -0
- data/evil_events.gemspec +6 -3
- data/lib/evil_events.rb +3 -0
- data/lib/evil_events/core/broadcasting.rb +1 -0
- data/lib/evil_events/core/broadcasting/emitter.rb +19 -13
- data/lib/evil_events/core/broadcasting/emitter/adapter_proxy.rb +46 -0
- data/lib/evil_events/core/config.rb +37 -40
- data/lib/evil_events/core/events.rb +34 -3
- data/lib/evil_events/core/events/abstract_event.rb +4 -6
- data/lib/evil_events/core/events/event_extensions/class_signature.rb +13 -0
- data/lib/evil_events/core/events/event_extensions/class_signature/equalizer.rb +0 -2
- data/lib/evil_events/core/events/event_extensions/dispatchable.rb +74 -0
- data/lib/evil_events/core/events/event_extensions/observable.rb +2 -0
- data/lib/evil_events/core/events/event_extensions/serializable.rb +22 -2
- data/lib/evil_events/core/events/manager.rb +1 -1
- data/lib/evil_events/core/events/manager_registry.rb +16 -0
- data/lib/evil_events/core/events/manager_registry/scoped_event_type_matcher.rb +177 -0
- data/lib/evil_events/core/events/notifier/sequential.rb +2 -2
- data/lib/evil_events/core/events/serializers.rb +13 -2
- data/lib/evil_events/core/events/serializers/base.rb +56 -13
- data/lib/evil_events/core/events/serializers/base/abstract_engine.rb +47 -0
- data/lib/evil_events/core/events/serializers/base/abstract_factory.rb +60 -0
- data/lib/evil_events/core/events/serializers/base/data_transformer.rb +57 -0
- data/lib/evil_events/core/events/serializers/base/event_serialization_state.rb +80 -0
- data/lib/evil_events/core/events/serializers/base/generic_config.rb +7 -0
- data/lib/evil_events/core/events/serializers/hash.rb +3 -73
- data/lib/evil_events/core/events/serializers/hash/config.rb +11 -0
- data/lib/evil_events/core/events/serializers/hash/engines.rb +10 -0
- data/lib/evil_events/core/events/serializers/hash/engines/native.rb +60 -0
- data/lib/evil_events/core/events/serializers/hash/factory.rb +65 -0
- data/lib/evil_events/core/events/serializers/hash/packer.rb +26 -0
- data/lib/evil_events/core/events/serializers/hash/unpacker.rb +24 -0
- data/lib/evil_events/core/events/serializers/json.rb +3 -59
- data/lib/evil_events/core/events/serializers/json/config.rb +11 -0
- data/lib/evil_events/core/events/serializers/json/engines.rb +10 -0
- data/lib/evil_events/core/events/serializers/json/engines/native.rb +43 -0
- data/lib/evil_events/core/events/serializers/json/factory.rb +65 -0
- data/lib/evil_events/core/events/serializers/json/packer.rb +26 -0
- data/lib/evil_events/core/events/serializers/json/unpacker.rb +31 -0
- data/lib/evil_events/core/events/serializers/message_pack.rb +7 -0
- data/lib/evil_events/core/events/serializers/message_pack/config.rb +17 -0
- data/lib/evil_events/core/events/serializers/message_pack/engines.rb +10 -0
- data/lib/evil_events/core/events/serializers/message_pack/engines/mpacker.rb +81 -0
- data/lib/evil_events/core/events/serializers/message_pack/factory.rb +65 -0
- data/lib/evil_events/core/events/serializers/message_pack/packer.rb +26 -0
- data/lib/evil_events/core/events/serializers/message_pack/unpacker.rb +24 -0
- data/lib/evil_events/core/events/serializers/xml.rb +7 -0
- data/lib/evil_events/core/events/serializers/xml/config.rb +11 -0
- data/lib/evil_events/core/events/serializers/xml/engines.rb +10 -0
- data/lib/evil_events/core/events/serializers/xml/engines/ox.rb +31 -0
- data/lib/evil_events/core/events/serializers/xml/factory.rb +65 -0
- data/lib/evil_events/core/events/serializers/xml/packer.rb +26 -0
- data/lib/evil_events/core/events/serializers/xml/unpacker.rb +24 -0
- data/lib/evil_events/core/events/subscriber/mixin.rb +26 -3
- data/lib/evil_events/core/system.rb +28 -2
- data/lib/evil_events/core/system/broadcaster.rb +11 -5
- data/lib/evil_events/core/system/event_builder.rb +98 -34
- data/lib/evil_events/core/system/event_manager.rb +12 -0
- data/lib/evil_events/core/system/mock.rb +30 -2
- data/lib/evil_events/emitter.rb +4 -2
- data/lib/evil_events/error.rb +21 -1
- data/lib/evil_events/serializer.rb +14 -0
- data/lib/evil_events/shared.rb +1 -3
- data/lib/evil_events/shared/any_config.rb +60 -0
- data/lib/evil_events/version.rb +2 -2
- metadata +85 -14
- data/.jrubyrc +0 -1
- data/lib/evil_events/core/events/event_extensions/adapter_customizable.rb +0 -49
- data/lib/evil_events/core/events/event_extensions/emittable.rb +0 -41
- data/lib/evil_events/shared/combined_context.rb +0 -124
- data/lib/evil_events/shared/combined_context/mixin.rb +0 -43
- data/lib/evil_events/shared/configurable.rb +0 -7
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class EvilEvents::Core::Events::Serializers
|
4
|
+
class MessagePack
|
5
|
+
# @api private
|
6
|
+
# @since 0.4.0
|
7
|
+
class Packer < Base::DataTransformer
|
8
|
+
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
9
|
+
# @raise [EvilEvents::MessagePackSerializationError]
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @see Base::DataTransformer
|
13
|
+
#
|
14
|
+
# @api private
|
15
|
+
# @since 0.4.0
|
16
|
+
def call(event)
|
17
|
+
unless event.is_a?(EvilEvents::Core::Events::AbstractEvent)
|
18
|
+
raise EvilEvents::MessagePackSerializationError
|
19
|
+
end
|
20
|
+
|
21
|
+
serialization_state = build_serialization_state(event)
|
22
|
+
engine.dump(serialization_state)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class EvilEvents::Core::Events::Serializers
|
4
|
+
class MessagePack
|
5
|
+
# @api private
|
6
|
+
# @since 0.4.0
|
7
|
+
class Unpacker < Base::DataTransformer
|
8
|
+
# @param serialized_event [String]
|
9
|
+
# @raise [EvilEvents::MessagePackDeserializationErro]
|
10
|
+
# @return [EvilEvents::Core::Events::AbstractEvent]
|
11
|
+
#
|
12
|
+
# @see Base::DataTransformer
|
13
|
+
#
|
14
|
+
# @api private
|
15
|
+
# @since 0.4.0
|
16
|
+
def call(serialized_event)
|
17
|
+
raise EvilEvents::MessagePackDeserializationError unless serialized_event.is_a?(String)
|
18
|
+
serialization_state = engine.load(serialized_event)
|
19
|
+
raise EvilEvents::MessagePackDeserializationError unless serialization_state.valid?
|
20
|
+
restore_event_instance(serialization_state)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class EvilEvents::Core::Events::Serializers::XML::Engines
|
4
|
+
# @api private
|
5
|
+
# @since 0.4.0
|
6
|
+
class Ox < EvilEvents::Core::Events::Serializers::Base::AbstractEngine
|
7
|
+
# @param serialization_state [Base::EventSerializationState]
|
8
|
+
# @return [String]
|
9
|
+
#
|
10
|
+
# @since 0.4.0
|
11
|
+
# @api private
|
12
|
+
def dump(serialization_state)
|
13
|
+
::Ox.dump(serialization_state)
|
14
|
+
end
|
15
|
+
|
16
|
+
# @param xml [String]
|
17
|
+
# @raise [EvilEvents::SerializationEngineError]
|
18
|
+
# @return [EventSerializationState]
|
19
|
+
#
|
20
|
+
# @since 0.4.0
|
21
|
+
# @api private
|
22
|
+
def load(xml)
|
23
|
+
::Ox.parse_obj(xml)
|
24
|
+
rescue ::Ox::Error, NoMethodError, TypeError, ArgumentError
|
25
|
+
raise EvilEvents::SerializationEngineError
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# @since 0.4.0
|
30
|
+
register(:ox, Ox)
|
31
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class EvilEvents::Core::Events::Serializers
|
4
|
+
class XML
|
5
|
+
# @api private
|
6
|
+
# @since 0.4.0
|
7
|
+
class Factory < AbstractFactory
|
8
|
+
# @return [XML::Config]
|
9
|
+
#
|
10
|
+
# @api private
|
11
|
+
# @since 0.4.0
|
12
|
+
def build_config
|
13
|
+
settings = EvilEvents::Core::Bootstrap[:config].serializers.xml
|
14
|
+
|
15
|
+
Config.new do |config|
|
16
|
+
config.engine = settings.engine
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# @param config [XML::Config]
|
21
|
+
# @raise [EvilEvents::UnrecognizedSerializationEngineError]
|
22
|
+
# @return [Base::AbstractEngine]
|
23
|
+
#
|
24
|
+
# @api private
|
25
|
+
# @since 0.4.0
|
26
|
+
def build_engine(config)
|
27
|
+
Engines.resolve(config.engine).new(config)
|
28
|
+
rescue Dry::Container::Error
|
29
|
+
raise EvilEvents::UnrecognizedSerializationEngineError
|
30
|
+
end
|
31
|
+
|
32
|
+
# @param engine [Base::AbstractEngine]
|
33
|
+
# @param config [XML::Config]
|
34
|
+
# @return [XML::Packer]
|
35
|
+
#
|
36
|
+
# @api private
|
37
|
+
# @since 0.4.0
|
38
|
+
def build_packer(engine, _config)
|
39
|
+
Packer.new(engine)
|
40
|
+
end
|
41
|
+
|
42
|
+
# @param engine [Base::AbstractEngine]
|
43
|
+
# @param config [XML::Config]
|
44
|
+
# @return [XML::Unpacker]
|
45
|
+
#
|
46
|
+
# @api private
|
47
|
+
# @since 0.4.0
|
48
|
+
def build_unpacker(engine, _config)
|
49
|
+
Unpacker.new(engine)
|
50
|
+
end
|
51
|
+
|
52
|
+
# @param engine [Base::AbstractEngine]
|
53
|
+
# @param config [XML::Config]
|
54
|
+
# @param packer [XML::Packer]
|
55
|
+
# @param unpacker [XML::Unpacker]
|
56
|
+
# @return [XML]
|
57
|
+
#
|
58
|
+
# @api private
|
59
|
+
# @since 0.4.0
|
60
|
+
def create_adapter(engine, config, packer, unpacker)
|
61
|
+
XML.new(engine, config, packer, unpacker)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class EvilEvents::Core::Events::Serializers
|
4
|
+
class XML
|
5
|
+
# @api private
|
6
|
+
# @since 0.4.0
|
7
|
+
class Packer < Base::DataTransformer
|
8
|
+
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
9
|
+
# @raise [EvilEvents::XMLSerializationError]
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @see Base::DataTransformer
|
13
|
+
#
|
14
|
+
# @api private
|
15
|
+
# @since 0.4.0
|
16
|
+
def call(event)
|
17
|
+
unless event.is_a?(EvilEvents::Core::Events::AbstractEvent)
|
18
|
+
raise EvilEvents::XMLSerializationError
|
19
|
+
end
|
20
|
+
|
21
|
+
serialization_state = build_serialization_state(event)
|
22
|
+
engine.dump(serialization_state)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class EvilEvents::Core::Events::Serializers
|
4
|
+
class XML
|
5
|
+
# @api private
|
6
|
+
# @since 0.4.0
|
7
|
+
class Unpacker < Base::DataTransformer
|
8
|
+
# @param serialized_event [String]
|
9
|
+
# @raise [EvilEvents::XMLDeserializationError]
|
10
|
+
# @return [EvilEvents::Core::Events::AbstractEvent]
|
11
|
+
#
|
12
|
+
# @see Base::DataTransformer
|
13
|
+
#
|
14
|
+
# @api private
|
15
|
+
# @since 0.4.0
|
16
|
+
def call(serialized_event)
|
17
|
+
raise EvilEvents::XMLDeserializationError unless serialized_event.is_a?(String)
|
18
|
+
serialization_state = engine.load(serialized_event)
|
19
|
+
raise EvilEvents::XMLDeserializationError unless serialization_state.valid?
|
20
|
+
restore_event_instance(serialization_state)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,17 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class EvilEvents::Core::Events::Subscriber
|
4
|
+
# rubocop:disable Metrics/BlockLength
|
5
|
+
|
4
6
|
# @api public
|
5
7
|
# @since 0.1.0
|
6
8
|
Mixin = EvilEvents::Shared::ClonableModuleBuilder.build do
|
7
|
-
# @param
|
8
|
-
# @
|
9
|
+
# @param event_types [Array<String, Class{EvilEvents::Core::Events::AbstractEvent}, Regexp>]
|
10
|
+
# @option delegator [String, Symbol, NilClass]
|
9
11
|
# @raise [EvilEvents::ArgumentError]
|
12
|
+
# @return [void]
|
10
13
|
#
|
11
14
|
# @since 0.2.0
|
12
15
|
def subscribe_to(*event_types, delegator: nil)
|
13
16
|
raise EvilEvents::ArgumentError unless event_types.all? do |event_type|
|
14
|
-
event_type.is_a?(Class)
|
17
|
+
event_type.is_a?(Class) ||
|
15
18
|
event_type.is_a?(String) ||
|
16
19
|
event_type.is_a?(Regexp) ||
|
17
20
|
event_type.is_a?(Proc)
|
@@ -28,5 +31,25 @@ class EvilEvents::Core::Events::Subscriber
|
|
28
31
|
end
|
29
32
|
end
|
30
33
|
end
|
34
|
+
|
35
|
+
# @param event_scopes [Array<String>]
|
36
|
+
# @option delegator [String,Symbol,NilClass]
|
37
|
+
# @raise [EvilEvents::ArgumentError]
|
38
|
+
# @return [void]
|
39
|
+
#
|
40
|
+
# @api public
|
41
|
+
# @since 0.4.0
|
42
|
+
def subscribe_to_scope(*event_scopes, delegator: nil)
|
43
|
+
raise EvilEvents::ArgumentError unless event_scopes.all? do |event_scope|
|
44
|
+
event_scope.is_a?(String)
|
45
|
+
end
|
46
|
+
|
47
|
+
event_system = EvilEvents::Core::Bootstrap[:event_system]
|
48
|
+
|
49
|
+
event_scopes.each do |event_scope|
|
50
|
+
event_system.scoped_observe(event_scope, self, delegator)
|
51
|
+
end
|
52
|
+
end
|
31
53
|
end
|
54
|
+
# rubocop:enable Metrics/BlockLength
|
32
55
|
end
|
@@ -17,6 +17,8 @@ module EvilEvents::Core
|
|
17
17
|
include Mocking
|
18
18
|
|
19
19
|
# @see EvilEvents::Core::System::Broadcaster
|
20
|
+
#
|
21
|
+
# @api private
|
20
22
|
# @since 0.1.0
|
21
23
|
def_delegators :broadcaster,
|
22
24
|
:emit,
|
@@ -27,12 +29,15 @@ module EvilEvents::Core
|
|
27
29
|
:restart_event_notifier
|
28
30
|
|
29
31
|
# @see EvilEvents::Core::System::EventManager
|
32
|
+
#
|
33
|
+
# @api private
|
30
34
|
# @since 0.1.0
|
31
35
|
def_delegators :event_manager,
|
32
36
|
:observe,
|
33
37
|
:raw_observe,
|
34
38
|
:observe_list,
|
35
39
|
:conditional_observe,
|
40
|
+
:scoped_observe,
|
36
41
|
:observers,
|
37
42
|
:register_event_class,
|
38
43
|
:unregister_event_class,
|
@@ -44,14 +49,24 @@ module EvilEvents::Core
|
|
44
49
|
:managed_event?
|
45
50
|
|
46
51
|
# @see EvilEvents::Core::System::EventBuilder
|
52
|
+
#
|
53
|
+
# @api private
|
47
54
|
# @since 0.1.0
|
48
|
-
def_delegators
|
55
|
+
def_delegators :event_builder,
|
49
56
|
:define_event_class,
|
50
57
|
:define_abstract_event_class,
|
51
58
|
:deserialize_from_json,
|
52
|
-
:deserialize_from_hash
|
59
|
+
:deserialize_from_hash,
|
60
|
+
:deserialize_from_xml,
|
61
|
+
:deserialize_from_msgpack,
|
62
|
+
:serialize_to_json,
|
63
|
+
:serialize_to_hash,
|
64
|
+
:serialize_to_msgpack,
|
65
|
+
:serialize_to_xml
|
53
66
|
|
54
67
|
# @see EvilEvents::Core::System::TypeManager
|
68
|
+
#
|
69
|
+
# @api private
|
55
70
|
# @since 0.2.0
|
56
71
|
def_delegators :type_manager,
|
57
72
|
:register_converter,
|
@@ -59,21 +74,32 @@ module EvilEvents::Core
|
|
59
74
|
|
60
75
|
# @return [EvilEvents::Core::System::Broadcaster]
|
61
76
|
#
|
77
|
+
# @api private
|
62
78
|
# @since 0.1.0
|
63
79
|
attr_reader :broadcaster
|
64
80
|
|
65
81
|
# @return [EvilEvents::Core::System::EventManager]
|
66
82
|
#
|
83
|
+
# @api private
|
67
84
|
# @since 0.1.0
|
68
85
|
attr_reader :event_manager
|
69
86
|
|
70
87
|
# @return [EvilEvents::Core::System::TypeManager]
|
71
88
|
#
|
89
|
+
# @api private
|
72
90
|
# @since 0.2.0
|
73
91
|
attr_reader :type_manager
|
74
92
|
|
93
|
+
# @return [EvilEvents::Core::System::EventBuilder]
|
94
|
+
#
|
95
|
+
# @api private
|
96
|
+
# @since 0.4.0
|
97
|
+
attr_reader :event_builder
|
98
|
+
|
99
|
+
# @api private
|
75
100
|
# @since 0.1.0
|
76
101
|
def initialize
|
102
|
+
@event_builder = EventBuilder.new
|
77
103
|
@broadcaster = Broadcaster.new
|
78
104
|
@event_manager = EventManager.new
|
79
105
|
@type_manager = TypeManager.new
|
@@ -29,20 +29,26 @@ class EvilEvents::Core::System
|
|
29
29
|
end
|
30
30
|
|
31
31
|
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
32
|
+
# @option adapter [Symbol,NilClass]
|
32
33
|
# @return void
|
33
34
|
#
|
34
35
|
# @since 0.1.0
|
35
|
-
def emit(event)
|
36
|
-
event_emitter.emit(event)
|
36
|
+
def emit(event, adapter: nil)
|
37
|
+
event_emitter.emit(event, adapter: adapter)
|
37
38
|
end
|
38
39
|
|
39
40
|
# @param event_type [String]
|
40
|
-
# @
|
41
|
+
# @option id [NilClass,String]
|
42
|
+
# @option payload [Hash]
|
43
|
+
# @option metadata [Hash]
|
44
|
+
# @option adapter [Symbol,NilClass]
|
41
45
|
# @return void
|
42
46
|
#
|
43
47
|
# @since 0.1.0
|
44
|
-
def raw_emit(event_type,
|
45
|
-
event_emitter.raw_emit(
|
48
|
+
def raw_emit(event_type, id: nil, payload: {}, metadata: {}, adapter: nil)
|
49
|
+
event_emitter.raw_emit(
|
50
|
+
event_type, id: id, payload: payload, metadata: metadata, adapter: adapter
|
51
|
+
)
|
46
52
|
end
|
47
53
|
|
48
54
|
# @param adapter_name [Symbol, String]
|
@@ -3,40 +3,104 @@
|
|
3
3
|
class EvilEvents::Core::System
|
4
4
|
# @api private
|
5
5
|
# @since 0.1.0
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
6
|
+
class EventBuilder
|
7
|
+
# @return [EvilEvents::Core::Events::Serializers]
|
8
|
+
#
|
9
|
+
# @api private
|
10
|
+
# @since 0.4.0
|
11
|
+
attr_reader :serializers_container
|
12
|
+
|
13
|
+
# @api private
|
14
|
+
# @since 0.4.0
|
15
|
+
def initialize
|
16
|
+
@serializers_container = EvilEvents::Core::Events::Serializers.new
|
17
|
+
|
18
|
+
@serializers_container.register_core_serializers!
|
19
|
+
end
|
20
|
+
|
21
|
+
# @param event_type [String]
|
22
|
+
# @param event_class_definitions [Proc]
|
23
|
+
# @return [Class{EvilEvents::Core::Events::AbstractEvent}]
|
24
|
+
#
|
25
|
+
# @since 0.1.0
|
26
|
+
def define_event_class(event_type, &event_class_definitions)
|
27
|
+
EvilEvents::Core::Events::EventFactory.create_class(event_type, &event_class_definitions)
|
28
|
+
end
|
29
|
+
|
30
|
+
# @param event_type [String]
|
31
|
+
# @return [Class{EvilEvents::Core::Events::AbstractEvent}]
|
32
|
+
#
|
33
|
+
# @since 0.1.0
|
34
|
+
def define_abstract_event_class(event_type)
|
35
|
+
EvilEvents::Core::Events::EventFactory.create_abstract_class(event_type)
|
36
|
+
end
|
37
|
+
|
38
|
+
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
39
|
+
# @return [::Hash]
|
40
|
+
#
|
41
|
+
# @api private
|
42
|
+
# @since 0.4.0
|
43
|
+
def serialize_to_hash(event)
|
44
|
+
serializers_container.resolve(:hash).serialize(event)
|
45
|
+
end
|
46
|
+
|
47
|
+
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
48
|
+
# @return [::String]
|
49
|
+
#
|
50
|
+
# @api private
|
51
|
+
# @since 0.4.0
|
52
|
+
def serialize_to_json(event)
|
53
|
+
serializers_container.resolve(:json).serialize(event)
|
54
|
+
end
|
55
|
+
|
56
|
+
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
57
|
+
# @return [::String]
|
58
|
+
#
|
59
|
+
# @api private
|
60
|
+
# @since 0.4.0
|
61
|
+
def serialize_to_xml(event)
|
62
|
+
serializers_container.resolve(:xml).serialize(event)
|
63
|
+
end
|
64
|
+
|
65
|
+
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
66
|
+
# @return [::String]
|
67
|
+
#
|
68
|
+
# @api private
|
69
|
+
# @since 0.4.0
|
70
|
+
def serialize_to_msgpack(event)
|
71
|
+
serializers_container.resolve(:msgpack).serialize(event)
|
72
|
+
end
|
73
|
+
|
74
|
+
# @param serialized_event [String]
|
75
|
+
# @return [EvilEvents::Core::Events::AbstractEvent]
|
76
|
+
#
|
77
|
+
# @since 0.1.0
|
78
|
+
def deserialize_from_json(serialized_event)
|
79
|
+
serializers_container.resolve(:json).deserialize(serialized_event)
|
80
|
+
end
|
81
|
+
|
82
|
+
# @param serialized_event [Hash]
|
83
|
+
# @return [EvilEvents::Core::Events::AbstractEvent]
|
84
|
+
#
|
85
|
+
# @since 0.1.0
|
86
|
+
def deserialize_from_hash(serialized_event)
|
87
|
+
serializers_container.resolve(:hash).deserialize(serialized_event)
|
88
|
+
end
|
89
|
+
|
90
|
+
# @param serialized_event [String]
|
91
|
+
# @return [EvilEvents::Core::Events::AbstractEvent]
|
92
|
+
#
|
93
|
+
# @since 0.4.0
|
94
|
+
def deserialize_from_xml(serialized_event)
|
95
|
+
serializers_container.resolve(:xml).deserialize(serialized_event)
|
96
|
+
end
|
97
|
+
|
98
|
+
# @param serialized_event [String]
|
99
|
+
# @return [EvilEvents::Core::Events::AbstractEvent]
|
100
|
+
#
|
101
|
+
# @since 0.4.0
|
102
|
+
def deserialize_from_msgpack(serialized_event)
|
103
|
+
serializers_container.resolve(:msgpack).deserialize(serialized_event)
|
40
104
|
end
|
41
105
|
end
|
42
106
|
end
|