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.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +10 -1
  4. data/.travis.yml +4 -5
  5. data/CHANGELOG.md +73 -0
  6. data/evil_events.gemspec +6 -3
  7. data/lib/evil_events.rb +3 -0
  8. data/lib/evil_events/core/broadcasting.rb +1 -0
  9. data/lib/evil_events/core/broadcasting/emitter.rb +19 -13
  10. data/lib/evil_events/core/broadcasting/emitter/adapter_proxy.rb +46 -0
  11. data/lib/evil_events/core/config.rb +37 -40
  12. data/lib/evil_events/core/events.rb +34 -3
  13. data/lib/evil_events/core/events/abstract_event.rb +4 -6
  14. data/lib/evil_events/core/events/event_extensions/class_signature.rb +13 -0
  15. data/lib/evil_events/core/events/event_extensions/class_signature/equalizer.rb +0 -2
  16. data/lib/evil_events/core/events/event_extensions/dispatchable.rb +74 -0
  17. data/lib/evil_events/core/events/event_extensions/observable.rb +2 -0
  18. data/lib/evil_events/core/events/event_extensions/serializable.rb +22 -2
  19. data/lib/evil_events/core/events/manager.rb +1 -1
  20. data/lib/evil_events/core/events/manager_registry.rb +16 -0
  21. data/lib/evil_events/core/events/manager_registry/scoped_event_type_matcher.rb +177 -0
  22. data/lib/evil_events/core/events/notifier/sequential.rb +2 -2
  23. data/lib/evil_events/core/events/serializers.rb +13 -2
  24. data/lib/evil_events/core/events/serializers/base.rb +56 -13
  25. data/lib/evil_events/core/events/serializers/base/abstract_engine.rb +47 -0
  26. data/lib/evil_events/core/events/serializers/base/abstract_factory.rb +60 -0
  27. data/lib/evil_events/core/events/serializers/base/data_transformer.rb +57 -0
  28. data/lib/evil_events/core/events/serializers/base/event_serialization_state.rb +80 -0
  29. data/lib/evil_events/core/events/serializers/base/generic_config.rb +7 -0
  30. data/lib/evil_events/core/events/serializers/hash.rb +3 -73
  31. data/lib/evil_events/core/events/serializers/hash/config.rb +11 -0
  32. data/lib/evil_events/core/events/serializers/hash/engines.rb +10 -0
  33. data/lib/evil_events/core/events/serializers/hash/engines/native.rb +60 -0
  34. data/lib/evil_events/core/events/serializers/hash/factory.rb +65 -0
  35. data/lib/evil_events/core/events/serializers/hash/packer.rb +26 -0
  36. data/lib/evil_events/core/events/serializers/hash/unpacker.rb +24 -0
  37. data/lib/evil_events/core/events/serializers/json.rb +3 -59
  38. data/lib/evil_events/core/events/serializers/json/config.rb +11 -0
  39. data/lib/evil_events/core/events/serializers/json/engines.rb +10 -0
  40. data/lib/evil_events/core/events/serializers/json/engines/native.rb +43 -0
  41. data/lib/evil_events/core/events/serializers/json/factory.rb +65 -0
  42. data/lib/evil_events/core/events/serializers/json/packer.rb +26 -0
  43. data/lib/evil_events/core/events/serializers/json/unpacker.rb +31 -0
  44. data/lib/evil_events/core/events/serializers/message_pack.rb +7 -0
  45. data/lib/evil_events/core/events/serializers/message_pack/config.rb +17 -0
  46. data/lib/evil_events/core/events/serializers/message_pack/engines.rb +10 -0
  47. data/lib/evil_events/core/events/serializers/message_pack/engines/mpacker.rb +81 -0
  48. data/lib/evil_events/core/events/serializers/message_pack/factory.rb +65 -0
  49. data/lib/evil_events/core/events/serializers/message_pack/packer.rb +26 -0
  50. data/lib/evil_events/core/events/serializers/message_pack/unpacker.rb +24 -0
  51. data/lib/evil_events/core/events/serializers/xml.rb +7 -0
  52. data/lib/evil_events/core/events/serializers/xml/config.rb +11 -0
  53. data/lib/evil_events/core/events/serializers/xml/engines.rb +10 -0
  54. data/lib/evil_events/core/events/serializers/xml/engines/ox.rb +31 -0
  55. data/lib/evil_events/core/events/serializers/xml/factory.rb +65 -0
  56. data/lib/evil_events/core/events/serializers/xml/packer.rb +26 -0
  57. data/lib/evil_events/core/events/serializers/xml/unpacker.rb +24 -0
  58. data/lib/evil_events/core/events/subscriber/mixin.rb +26 -3
  59. data/lib/evil_events/core/system.rb +28 -2
  60. data/lib/evil_events/core/system/broadcaster.rb +11 -5
  61. data/lib/evil_events/core/system/event_builder.rb +98 -34
  62. data/lib/evil_events/core/system/event_manager.rb +12 -0
  63. data/lib/evil_events/core/system/mock.rb +30 -2
  64. data/lib/evil_events/emitter.rb +4 -2
  65. data/lib/evil_events/error.rb +21 -1
  66. data/lib/evil_events/serializer.rb +14 -0
  67. data/lib/evil_events/shared.rb +1 -3
  68. data/lib/evil_events/shared/any_config.rb +60 -0
  69. data/lib/evil_events/version.rb +2 -2
  70. metadata +85 -14
  71. data/.jrubyrc +0 -1
  72. data/lib/evil_events/core/events/event_extensions/adapter_customizable.rb +0 -49
  73. data/lib/evil_events/core/events/event_extensions/emittable.rb +0 -41
  74. data/lib/evil_events/shared/combined_context.rb +0 -124
  75. data/lib/evil_events/shared/combined_context/mixin.rb +0 -43
  76. data/lib/evil_events/shared/configurable.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a6865070862de35490cfff6007e0c034c95436a6
4
- data.tar.gz: ab3eae931b6e1c9ec8b8c3c3725fd7f70a79993b
2
+ SHA256:
3
+ metadata.gz: ebb72755c7492ae455bb03f369b5751a39afdcccda53ad047b820233a82e511c
4
+ data.tar.gz: 8c603db8c385f308b674a8f34bf2b18c9ac14973c2cbab875b7c017500ec7384
5
5
  SHA512:
6
- metadata.gz: de6d15423662b1eb23e34e699ee91565d186c0487c24ee0585c738077bd526a9607f9c5d68c554c83b0e2e99734fef4c147f72efbaa39b2179ba6ed4253c5ade
7
- data.tar.gz: 16e42671c7a962619d163173d96515859914ea6d65c2714b1e6e7aac5f26c261465f30758b8ef265538cecfba7230e27d45f90d811f2ded84887d4e09df3f5d5
6
+ metadata.gz: 5c9a12d72f309306e5ebbd5284998715574196e57a643809cdb9f45daa4a9595c8b446d31460557c14ea72795aae42079fd0d86239ef0aba0eec5fb4645533b9
7
+ data.tar.gz: 13d6e35c94e8700cb49779a593cd8825c1bd50713165fc1524b2a13135bb4ef4418ad185f0f5fe2b443c79502159bb23660f8a70ffc694f7536e2c187094cc34
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  .rspec_status
11
+ .ruby-version
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.2
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
@@ -1,11 +1,10 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.8
4
- - 2.3.5
5
- - 2.4.2
6
- - 2.5.0
3
+ - 2.2.10
4
+ - 2.3.7
5
+ - 2.4.4
6
+ - 2.5.1
7
7
  - ruby-head
8
- - jruby-head
9
8
 
10
9
  sudo: false
11
10
  before_install: gem install bundler
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.7'
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.52.1'
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.23.0'
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
@@ -10,5 +10,6 @@ module EvilEvents::Core
10
10
  require_relative 'broadcasting/adapters/memory_sync'
11
11
  require_relative 'broadcasting/adapters/memory_async'
12
12
  require_relative 'broadcasting/emitter'
13
+ require_relative 'broadcasting/emitter/adapter_proxy'
13
14
  end
14
15
  end
@@ -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
- log_activity(event)
18
- event.adapter.call(event)
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
- # @param event_attributes [Hash]
23
- # @return void
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, **event_attributes)
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
- # @return void
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(#{event.adapter_name})"
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
- # @api private
16
- # @since 0.1.0
17
- def initialize # rubocop:disable Metrics/AbcSize
18
- @config = Module.new do
19
- extend EvilEvents::Shared::Configurable
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 :subscriber, reader: true do
26
- setting :default_delegator, :call
22
+ setting :hashing do
23
+ setting :engine, :native
27
24
  end
28
25
 
29
- setting :logger, EvilEvents::Shared::Logger.new(STDOUT), reader: true
30
-
31
- setting :notifier, reader: true do
32
- setting :type, :sequential
26
+ setting :xml do
27
+ setting :engine, :ox
28
+ end
33
29
 
34
- setting :sequential, reader: true do
35
- # NOTE: place future settings here
36
- end
30
+ setting :msgpack do
31
+ setting :engine, :mpacker
37
32
 
38
- setting :worker, reader: true do
39
- setting :min_threads, 0
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
- private
39
+ setting :adapter, reader: true do
40
+ setting :default, :memory_sync
41
+ end
49
42
 
50
- # @return [Module{EvilEvents::Shared::Configurable}]
51
- #
52
- # @api private
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
- # @api private
57
- # @since 0.1.0
58
- def method_missing(method_name, *attributes, &block)
59
- return super unless config.respond_to?(method_name)
60
- config.public_send(method_name, *attributes, &block)
61
- end
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
- # @api private
64
- # @since 0.1.0
65
- def respond_to_missing?(method_name, include_private = false)
66
- config.respond_to?(method_name, include_private) || super
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/hash'
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/adapter_customizable'
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'