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
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'
|