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