evil_events 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ebb72755c7492ae455bb03f369b5751a39afdcccda53ad047b820233a82e511c
|
4
|
+
data.tar.gz: 8c603db8c385f308b674a8f34bf2b18c9ac14973c2cbab875b7c017500ec7384
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c9a12d72f309306e5ebbd5284998715574196e57a643809cdb9f45daa4a9595c8b446d31460557c14ea72795aae42079fd0d86239ef0aba0eec5fb4645533b9
|
7
|
+
data.tar.gz: 13d6e35c94e8700cb49779a593cd8825c1bd50713165fc1524b2a13135bb4ef4418ad185f0f5fe2b443c79502159bb23660f8a70ffc694f7536e2c187094cc34
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -3,7 +3,7 @@ require: rubocop-rspec
|
|
3
3
|
AllCops:
|
4
4
|
DisplayCopNames: true
|
5
5
|
DisplayStyleGuide: true
|
6
|
-
TargetRubyVersion: 2.4.
|
6
|
+
TargetRubyVersion: 2.4.4
|
7
7
|
Include:
|
8
8
|
- lib/**/*
|
9
9
|
- spec/**/*
|
@@ -56,6 +56,12 @@ Style/CommentedKeyword:
|
|
56
56
|
Style/EvalWithLocation:
|
57
57
|
Enabled: false
|
58
58
|
|
59
|
+
Style/RegexpLiteral:
|
60
|
+
EnforcedStyle: mixed
|
61
|
+
|
62
|
+
Layout/MultilineOperationIndentation:
|
63
|
+
Enabled: false
|
64
|
+
|
59
65
|
Lint/AmbiguousRegexpLiteral:
|
60
66
|
Enabled: false
|
61
67
|
|
@@ -71,6 +77,9 @@ Naming/FileName:
|
|
71
77
|
Naming/VariableNumber:
|
72
78
|
EnforcedStyle: snake_case
|
73
79
|
|
80
|
+
Naming/UncommunicativeMethodParamName:
|
81
|
+
Enabled: false
|
82
|
+
|
74
83
|
Metrics/LineLength:
|
75
84
|
Max: 100
|
76
85
|
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,79 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
## [0.4.0] - 2018-05-02
|
5
|
+
### Added
|
6
|
+
- **Routing Key Based Event Types**. A new way of subscribing to events and approach to event naming: routing-key-based event naming;
|
7
|
+
- Event names must be named in the routing-key style;
|
8
|
+
- New method for subscription: `EvilEvents::SubscriberMixin#subscribe_to_scope(*event_scopes, delegator: nil)`;
|
9
|
+
- Event subscription follows this pattern:
|
10
|
+
- `*` - manadtory presence of the event scope (this pattern requires an event scope presence);
|
11
|
+
- `#` - any count of event scopes (zero or more) (this pattern doesnt require an event scope presence);
|
12
|
+
- `.` - event scope splitter;
|
13
|
+
- `other symbols` - chars for event scope names;
|
14
|
+
- Example (our events: `user`, `user.created`, `user.created.tomorrow`, `deposit`, `deposit.created`, `created`, `created.today`):
|
15
|
+
- `user.#` - all event types starting with `user` (`user`, `user.created`, `user.created.tomorrow`);
|
16
|
+
- `user.*` - all events with only TWO parts. `user` part is required (`user.created`);
|
17
|
+
- `*.created.#` => `user.created.tomorrow`, `user.created`, `deposit.created`;
|
18
|
+
- `#.created.*` => `user.created.tomorrow`, `user.created`, `created`, `created.today`, `deposit.created`;
|
19
|
+
- `#` => all events;
|
20
|
+
- `*` => events with only one part in name: `user`, `deposit`, `created`;
|
21
|
+
- and etc;
|
22
|
+
- Support for Ruby `2.2.10`, `2.3.7`, `2.4.4`, `2.5.1`;
|
23
|
+
- Ability to broadcast events via any registered adapter by explicitly passed `:adapter` attribute in emition methods:
|
24
|
+
- `EvilEvents::Emitter.emit('your_event_type', adapter: :your_adapter_identifier, **event_attrs)`;
|
25
|
+
- `YourEventClass.emit!(adapter: :your_adapter_identifier, **event_attrs)`;
|
26
|
+
- `your_event.emit!(adapter: :your_adapter_identifier)`;
|
27
|
+
- Added XML event serialization format (no more JRuby at this moment **:(**):
|
28
|
+
- `EvilEvents::Serializer.load_from_xml(xml)` - returns an event object;
|
29
|
+
- `your_event.serialize_to_xml` - returns xml string;
|
30
|
+
- `your_event.dump_to_xml` - returns xml string (`serialize_to_xml` alias);
|
31
|
+
- Added MessagePack event serialization format (no more JRuby at this moment **:(**):
|
32
|
+
- `EvilEvents::Serializer.load_from_msgpack(message)` - returns an event object;
|
33
|
+
- `your_event.serialize_to_msgpack` - returns messagepack string;
|
34
|
+
- `your_event.dump_to_msgpack` - returns messagepack string (`serialize_to_msgpack` alias);
|
35
|
+
- Added an ability to check an event object similarity:
|
36
|
+
- `your_event.similar_to?(another_event)` - `returns` true if `another_event` has equal id/type/metadata/paylaod
|
37
|
+
attributes (and interface) - otherwise returns `false`.
|
38
|
+
|
39
|
+
### Changed
|
40
|
+
- Removed `EvilEvents::Shared::Configurable` => `EvilEvents::Shared::AnyConfig` is used instead (smart dry-configurable wrapper);
|
41
|
+
- Removed `EvilEvents::Shared::CombinedContext` class and submodules => `Symbiont` is used instead (gem `symbiont-ruby`);
|
42
|
+
- Refactored event serialization abstraction:
|
43
|
+
- Each event serializer represents a complex logic now and is constructed by a set of objects:
|
44
|
+
- engines - low-level data-transformers, works with event serialization state (event data mapper);
|
45
|
+
- packer - responsible for serialization via corresponding engine (works with events and event serialization state);
|
46
|
+
- unpacker - responsible for deserialization logic via corresponding engine (works with low-level data and event serialization state);
|
47
|
+
- serializers container;
|
48
|
+
- config - configuration point of the each serializer;
|
49
|
+
- event serialization state - event data mapper (id, type, payload, metadata), engines works with this state;
|
50
|
+
- Supported engines:
|
51
|
+
- Hash (`:native`) - based on ::Hash class;
|
52
|
+
- JSON (`:native`) - based on ::JSON class;
|
53
|
+
- MessagePack (`:mpacker`) - based on MessagePack gem;
|
54
|
+
- XML (`:ox`) - based on Ox gem;
|
55
|
+
- Added configuration points for the each type of serializer:
|
56
|
+
- `EvilEvents::Config.options.serializers` - root
|
57
|
+
- `EvilEvents::Config.options.serializers.json.engine` - `:native` by default;
|
58
|
+
- `EvilEvents::Config.options.serializers.hashing.enigne` - `:native` by default;
|
59
|
+
- `EvilEvents::Config.options.serializers.xml.engine` - `:native` by default;
|
60
|
+
- `EvilEvents::Config.options.serializers.msgpack.engine` - `:mpacker` by default;
|
61
|
+
- `EvilEvents::Config.options.serializers.msgpack.mpacker.configurator` - `->(engine) {}` by default;
|
62
|
+
- Added specific serialization error classes (inherited from `EvilEvents::SerializationError`/`EvilEvents::DeserializationError` respectively):
|
63
|
+
- `EvilEvents::SerializersError`
|
64
|
+
- `EvilEvents::SerializationError`
|
65
|
+
- `EvilEvents::JSONSerializationError`
|
66
|
+
- `EvilEvents::XMLSerializationError`
|
67
|
+
- `EvilEvents::HashSerializationError`
|
68
|
+
- `EvilEvents::MessagePackSerializationError`
|
69
|
+
- `EvilEvents::DeserializationError`
|
70
|
+
- `EvilEvents::JSONDeserializationError`
|
71
|
+
- `EvilEvents::XMLDeserializationError`
|
72
|
+
- `EvilEvents::HashDeserializationError`
|
73
|
+
- `EvilEvents::MessagePackDeserializationError`
|
74
|
+
- `EvilEvents::SerializationEngineError`
|
75
|
+
- `EvilEvents::UnrecognizedSerializationEngineError`
|
76
|
+
|
4
77
|
## [0.3.1] - 2018-03-01
|
5
78
|
### Fixed
|
6
79
|
- A problem with Forwardable constant resolution when it cant be resolved due to dynamic definition in error classes (NameError fix).
|
data/evil_events.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require 'evil_events/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.required_ruby_version = '>= 2.2.
|
8
|
+
spec.required_ruby_version = '>= 2.2.10'
|
9
9
|
|
10
10
|
spec.name = 'evil_events'
|
11
11
|
spec.version = EvilEvents::VERSION
|
@@ -32,13 +32,16 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency 'dry-configurable', '~> 0.7.0'
|
33
33
|
spec.add_dependency 'dry-container', '~> 0.6.0'
|
34
34
|
spec.add_dependency 'concurrent-ruby', '~> 1.0.5'
|
35
|
+
spec.add_dependency 'symbiont-ruby', '~> 0.2.0'
|
36
|
+
spec.add_dependency 'ox', '~> 2.9.2'
|
37
|
+
spec.add_dependency 'msgpack', '~> 1.2.4'
|
35
38
|
|
36
39
|
spec.add_development_dependency 'coveralls', '~> 0.8.21'
|
37
40
|
spec.add_development_dependency 'simplecov', '~> 0.14.1'
|
38
41
|
spec.add_development_dependency 'simplecov-json', '~> 0.2'
|
39
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
42
|
+
spec.add_development_dependency 'rubocop', '~> 0.55.0'
|
40
43
|
spec.add_development_dependency 'rspec', '~> 3.7.0'
|
41
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 1.
|
44
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.25.1'
|
42
45
|
|
43
46
|
spec.add_development_dependency 'pry'
|
44
47
|
spec.add_development_dependency 'rake'
|
data/lib/evil_events.rb
CHANGED
@@ -6,10 +6,13 @@ require 'dry-struct'
|
|
6
6
|
require 'dry-types'
|
7
7
|
require 'concurrent/array'
|
8
8
|
require 'concurrent/map'
|
9
|
+
require 'symbiont'
|
9
10
|
require 'securerandom'
|
10
11
|
require 'forwardable'
|
12
|
+
require 'msgpack'
|
11
13
|
require 'logger'
|
12
14
|
require 'json'
|
15
|
+
require 'ox'
|
13
16
|
|
14
17
|
# @api public
|
15
18
|
# @since 0.1.0
|
@@ -5,41 +5,47 @@ module EvilEvents::Core::Broadcasting
|
|
5
5
|
# @since 0.1.0
|
6
6
|
class Emitter
|
7
7
|
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
8
|
+
# @option adapter [Symbol,NilClass]
|
8
9
|
# @raise [EvilEvents::IncorrectEventForEmitError]
|
9
|
-
# @return void
|
10
|
+
# @return [void]
|
10
11
|
#
|
11
12
|
# @since 0.1.0
|
12
|
-
def emit(event)
|
13
|
+
def emit(event, adapter: nil)
|
13
14
|
unless event.is_a?(EvilEvents::Core::Events::AbstractEvent)
|
14
15
|
raise EvilEvents::IncorrectEventForEmitError
|
15
16
|
end
|
16
17
|
|
17
|
-
|
18
|
-
|
18
|
+
adapter_proxy = AdapterProxy.new(event, explicit_identifier: adapter)
|
19
|
+
|
20
|
+
log_activity(event, adapter_proxy)
|
21
|
+
adapter_proxy.broadcast!
|
19
22
|
end
|
20
23
|
|
21
24
|
# @param event_type [String]
|
22
|
-
# @
|
23
|
-
# @
|
25
|
+
# @option id [NilClass,String]
|
26
|
+
# @option payload [Hash]
|
27
|
+
# @option metadata [Hash]
|
28
|
+
# @option adapter [Symbol,NilClass]
|
29
|
+
# @return [void]
|
24
30
|
#
|
25
31
|
# @since 0.1.0
|
26
|
-
def raw_emit(event_type,
|
32
|
+
def raw_emit(event_type, id: nil, payload: {}, metadata: {}, adapter: nil)
|
27
33
|
event_object = EvilEvents::Core::Bootstrap[:event_system].resolve_event_object(
|
28
|
-
event_type,
|
29
|
-
**event_attributes
|
34
|
+
event_type, id: id, payload: payload, metadata: metadata
|
30
35
|
)
|
31
36
|
|
32
|
-
emit(event_object)
|
37
|
+
emit(event_object, adapter: adapter)
|
33
38
|
end
|
34
39
|
|
35
40
|
private
|
36
41
|
|
37
42
|
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
38
|
-
# @
|
43
|
+
# @param adapter_proxy [EvilEvents::Core::Broadcasting::Emitter::AdapterProxy]
|
44
|
+
# @return [void]
|
39
45
|
#
|
40
46
|
# @since 0.1.0
|
41
|
-
def log_activity(event)
|
42
|
-
activity = "EventEmitted(#{
|
47
|
+
def log_activity(event, adapter_proxy)
|
48
|
+
activity = "EventEmitted(#{adapter_proxy.identifier})"
|
43
49
|
message = "ID: #{event.id} :: " \
|
44
50
|
"TYPE: #{event.type} :: " \
|
45
51
|
"PAYLOAD: #{event.payload} :: " \
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class EvilEvents::Core::Broadcasting::Emitter
|
4
|
+
# @api private
|
5
|
+
# @since 0.4.0
|
6
|
+
class AdapterProxy
|
7
|
+
# @return [Symbol]
|
8
|
+
#
|
9
|
+
# @api private
|
10
|
+
# @since 0.4.0
|
11
|
+
attr_reader :identifier
|
12
|
+
|
13
|
+
# @param event [EvilEvents::Core::Events::AbstractEvent]
|
14
|
+
# @option explicit_identifier [Symbol,NilClass]
|
15
|
+
#
|
16
|
+
# @api private
|
17
|
+
# @since 0.4.0
|
18
|
+
def initialize(event, explicit_identifier: nil)
|
19
|
+
@event = event
|
20
|
+
@identifier = explicit_identifier || event.adapter_name
|
21
|
+
@adapter = EvilEvents::Core::Bootstrap[:event_system].resolve_adapter(@identifier)
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [void]
|
25
|
+
#
|
26
|
+
# @api private
|
27
|
+
# @since 0.4.0
|
28
|
+
def broadcast!
|
29
|
+
adapter.call(event)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
# @return [EvilEvents::Core::Events::AbstractEvent]
|
35
|
+
#
|
36
|
+
# @api private
|
37
|
+
# @since 0.4.0
|
38
|
+
attr_reader :event
|
39
|
+
|
40
|
+
# @return [EvilEvents::Core::Broadcasting::Dispatcher::Mixin]
|
41
|
+
#
|
42
|
+
# @api private
|
43
|
+
# @since 0.4.0
|
44
|
+
attr_reader :adapter
|
45
|
+
end
|
46
|
+
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module EvilEvents::Core
|
4
4
|
# @api private
|
5
5
|
# @since 0.1.0
|
6
|
-
class Config
|
6
|
+
class Config < EvilEvents::Shared::AnyConfig
|
7
7
|
class << self
|
8
8
|
# @api private
|
9
9
|
# @since 0.1.0
|
@@ -12,58 +12,55 @@ module EvilEvents::Core
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
#
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
setting :adapter, reader: true do
|
22
|
-
setting :default, :memory_sync
|
15
|
+
# rubocop:disable Metrics/BlockLength
|
16
|
+
configure do
|
17
|
+
setting :serializers, reader: true do
|
18
|
+
setting :json do
|
19
|
+
setting :engine, :native
|
23
20
|
end
|
24
21
|
|
25
|
-
setting :
|
26
|
-
setting :
|
22
|
+
setting :hashing do
|
23
|
+
setting :engine, :native
|
27
24
|
end
|
28
25
|
|
29
|
-
setting :
|
30
|
-
|
31
|
-
|
32
|
-
setting :type, :sequential
|
26
|
+
setting :xml do
|
27
|
+
setting :engine, :ox
|
28
|
+
end
|
33
29
|
|
34
|
-
|
35
|
-
|
36
|
-
end
|
30
|
+
setting :msgpack do
|
31
|
+
setting :engine, :mpacker
|
37
32
|
|
38
|
-
setting :
|
39
|
-
setting :
|
40
|
-
setting :max_threads, 5
|
41
|
-
setting :max_queue, 1000
|
42
|
-
setting :fallback_policy, :main_thread
|
33
|
+
setting :mpacker do
|
34
|
+
setting :configurator, ->(engine) {}
|
43
35
|
end
|
44
36
|
end
|
45
37
|
end
|
46
|
-
end
|
47
38
|
|
48
|
-
|
39
|
+
setting :adapter, reader: true do
|
40
|
+
setting :default, :memory_sync
|
41
|
+
end
|
49
42
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
# @since 0.1.0
|
54
|
-
attr_reader :config
|
43
|
+
setting :subscriber, reader: true do
|
44
|
+
setting :default_delegator, :call
|
45
|
+
end
|
55
46
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
47
|
+
setting :logger, EvilEvents::Shared::Logger.new(STDOUT), reader: true
|
48
|
+
|
49
|
+
setting :notifier, reader: true do
|
50
|
+
setting :type, :sequential
|
51
|
+
|
52
|
+
setting :sequential, reader: true do
|
53
|
+
# NOTE: place future settings here
|
54
|
+
end
|
62
55
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
56
|
+
setting :worker, reader: true do
|
57
|
+
setting :min_threads, 0
|
58
|
+
setting :max_threads, 5
|
59
|
+
setting :max_queue, 1000
|
60
|
+
setting :fallback_policy, :main_thread
|
61
|
+
end
|
62
|
+
end
|
67
63
|
end
|
64
|
+
# rubocop:enable Metrics/BlockLength
|
68
65
|
end
|
69
66
|
end
|
@@ -6,18 +6,48 @@ module EvilEvents::Core
|
|
6
6
|
module Events
|
7
7
|
require_relative 'events/serializers'
|
8
8
|
require_relative 'events/serializers/base'
|
9
|
-
require_relative 'events/serializers/
|
9
|
+
require_relative 'events/serializers/base/generic_config'
|
10
|
+
require_relative 'events/serializers/base/abstract_engine'
|
11
|
+
require_relative 'events/serializers/base/data_transformer'
|
12
|
+
require_relative 'events/serializers/base/event_serialization_state'
|
13
|
+
require_relative 'events/serializers/base/abstract_factory'
|
10
14
|
require_relative 'events/serializers/json'
|
15
|
+
require_relative 'events/serializers/json/engines'
|
16
|
+
require_relative 'events/serializers/json/engines/native'
|
17
|
+
require_relative 'events/serializers/json/config'
|
18
|
+
require_relative 'events/serializers/json/factory'
|
19
|
+
require_relative 'events/serializers/json/packer'
|
20
|
+
require_relative 'events/serializers/json/unpacker'
|
21
|
+
require_relative 'events/serializers/hash'
|
22
|
+
require_relative 'events/serializers/hash/engines'
|
23
|
+
require_relative 'events/serializers/hash/engines/native'
|
24
|
+
require_relative 'events/serializers/hash/config'
|
25
|
+
require_relative 'events/serializers/hash/factory'
|
26
|
+
require_relative 'events/serializers/hash/packer'
|
27
|
+
require_relative 'events/serializers/hash/unpacker'
|
28
|
+
require_relative 'events/serializers/xml'
|
29
|
+
require_relative 'events/serializers/xml/engines'
|
30
|
+
require_relative 'events/serializers/xml/engines/ox'
|
31
|
+
require_relative 'events/serializers/xml/config'
|
32
|
+
require_relative 'events/serializers/xml/factory'
|
33
|
+
require_relative 'events/serializers/xml/packer'
|
34
|
+
require_relative 'events/serializers/xml/unpacker'
|
35
|
+
require_relative 'events/serializers/message_pack'
|
36
|
+
require_relative 'events/serializers/message_pack/engines'
|
37
|
+
require_relative 'events/serializers/message_pack/engines/mpacker'
|
38
|
+
require_relative 'events/serializers/message_pack/config'
|
39
|
+
require_relative 'events/serializers/message_pack/factory'
|
40
|
+
require_relative 'events/serializers/message_pack/packer'
|
41
|
+
require_relative 'events/serializers/message_pack/unpacker'
|
11
42
|
require_relative 'events/event_extensions/type_aliasing'
|
12
43
|
require_relative 'events/event_extensions/payloadable'
|
13
44
|
require_relative 'events/event_extensions/payloadable/abstract_payload'
|
14
45
|
require_relative 'events/event_extensions/manageable'
|
15
|
-
require_relative 'events/event_extensions/
|
46
|
+
require_relative 'events/event_extensions/dispatchable'
|
16
47
|
require_relative 'events/event_extensions/observable'
|
17
48
|
require_relative 'events/event_extensions/serializable'
|
18
49
|
require_relative 'events/event_extensions/metadata_extendable'
|
19
50
|
require_relative 'events/event_extensions/metadata_extendable/abstract_metadata'
|
20
|
-
require_relative 'events/event_extensions/emittable'
|
21
51
|
require_relative 'events/event_extensions/class_signature'
|
22
52
|
require_relative 'events/event_extensions/class_signature/signature'
|
23
53
|
require_relative 'events/event_extensions/class_signature/equalizer'
|
@@ -40,6 +70,7 @@ module EvilEvents::Core
|
|
40
70
|
require_relative 'events/manager/subscriber_list'
|
41
71
|
require_relative 'events/manager_factory'
|
42
72
|
require_relative 'events/manager_registry'
|
73
|
+
require_relative 'events/manager_registry/scoped_event_type_matcher'
|
43
74
|
require_relative 'events/subscriber'
|
44
75
|
require_relative 'events/subscriber/mixin'
|
45
76
|
require_relative 'events/event_factory'
|