evil_events 0.1.1 → 0.2.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +17 -1
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +29 -1
  5. data/evil_events.gemspec +17 -16
  6. data/lib/evil_events.rb +3 -1
  7. data/lib/evil_events/application.rb +16 -0
  8. data/lib/evil_events/config.rb +23 -6
  9. data/lib/evil_events/{adapters.rb → config/adapters.rb} +4 -4
  10. data/lib/evil_events/config/types.rb +24 -0
  11. data/lib/evil_events/core.rb +1 -0
  12. data/lib/evil_events/core/bootstrap.rb +1 -1
  13. data/lib/evil_events/core/broadcasting/emitter.rb +1 -1
  14. data/lib/evil_events/core/error.rb +8 -0
  15. data/lib/evil_events/core/events.rb +3 -0
  16. data/lib/evil_events/core/events/abstract_event.rb +2 -0
  17. data/lib/evil_events/core/events/event_extensions/class_signature.rb +30 -0
  18. data/lib/evil_events/core/events/event_extensions/class_signature/equalizer.rb +82 -0
  19. data/lib/evil_events/core/events/event_extensions/class_signature/signature.rb +70 -0
  20. data/lib/evil_events/core/events/event_extensions/metadata_extendable.rb +16 -4
  21. data/lib/evil_events/core/events/event_extensions/payloadable.rb +16 -4
  22. data/lib/evil_events/core/events/event_extensions/type_aliasing.rb +1 -1
  23. data/lib/evil_events/core/events/event_factory.rb +7 -2
  24. data/lib/evil_events/core/events/manager.rb +1 -1
  25. data/lib/evil_events/core/events/manager/notifier.rb +2 -1
  26. data/lib/evil_events/core/events/manager_factory.rb +1 -1
  27. data/lib/evil_events/core/events/manager_registry.rb +39 -2
  28. data/lib/evil_events/core/events/serializers.rb +2 -1
  29. data/lib/evil_events/core/events/subscriber/mixin.rb +20 -11
  30. data/lib/evil_events/core/system.rb +16 -0
  31. data/lib/evil_events/core/system/event_manager.rb +33 -3
  32. data/lib/evil_events/core/system/mock.rb +20 -0
  33. data/lib/evil_events/core/system/type_manager.rb +35 -0
  34. data/lib/evil_events/plugins.rb +33 -0
  35. data/lib/evil_events/plugins/elastic_search.rb +6 -0
  36. data/lib/evil_events/plugins/rails.rb +6 -0
  37. data/lib/evil_events/shared.rb +4 -0
  38. data/lib/evil_events/shared/crypto.rb +1 -1
  39. data/lib/evil_events/shared/type_converter.rb +43 -0
  40. data/lib/evil_events/shared/type_converter/converter.rb +45 -0
  41. data/lib/evil_events/shared/type_converter/converter_registry.rb +51 -0
  42. data/lib/evil_events/shared/type_converter/type_builder.rb +51 -0
  43. data/lib/evil_events/version.rb +2 -2
  44. metadata +73 -59
@@ -23,6 +23,14 @@ class EvilEvents::Core::System
23
23
  # @since 0.1.0
24
24
  def raw_observe(event_type, raw_subscriber, delegator); end
25
25
 
26
+ # @see EvilEvents::Core::System
27
+ # @since 0.2.0
28
+ def observe_list(event_pattern, raw_subscriber, delegator); end
29
+
30
+ # @see EvilEvents::Core::System
31
+ # @since 0.2.0
32
+ def conditional_observe(event_condition, raw_subscriber, delegator); end
33
+
26
34
  # @see EvilEvents::Core::System
27
35
  # @since 0.1.0
28
36
  def observers(event_class); end
@@ -86,5 +94,17 @@ class EvilEvents::Core::System
86
94
  # @see EvilEvents::Core::System
87
95
  # @since 0.1.0
88
96
  def managed_event?(event_class); end
97
+
98
+ # @see EvilEvents::Core::System
99
+ # @since 0.2.0
100
+ def register_converter(type, coercer); end
101
+
102
+ # @see EvilEvents::Core::System
103
+ # @since 0.2.0
104
+ def resolve_type(type, **options); end
105
+
106
+ # @see EvilEvents::Core::System
107
+ # @since 0.2.0
108
+ def registered_events; end
89
109
  end
90
110
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ class EvilEvents::Core::System
4
+ # @api private
5
+ # @since 0.2.0
6
+ class TypeManager
7
+ # @return [EvilEvents::Shared::TypeConverter]
8
+ #
9
+ # @since 0.2.0
10
+ attr_reader :converter
11
+
12
+ # @since 0.2.0
13
+ def initialize
14
+ @converter = EvilEvents::Shared::TypeConverter.new
15
+ end
16
+
17
+ # @param type [Symbol]
18
+ # @param coercer [Proc]
19
+ # @return [EvilEvents::Shared::TypeConverter::Converter]
20
+ #
21
+ # @since 0.2.0
22
+ def register_converter(type, coercer)
23
+ converter.register(type, coercer)
24
+ end
25
+
26
+ # @param type [Symbol]
27
+ # @param options [Hash]
28
+ # @return [EvilEvents::Shared::Types::Any]
29
+ #
30
+ # @since 0.2.0
31
+ def resolve_type(type, **options)
32
+ converter.resolve_type(type, **options)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EvilEvents
4
+ # @api public
5
+ # @since 0.2.0
6
+ class Plugins
7
+ # @since 0.2.0
8
+ extend Shared::DependencyContainer::Mixin
9
+
10
+ # @since 0.2.0
11
+ register(:rails, 'plugins/rails')
12
+ # @since 0.2.0
13
+ register(:elastic_search, 'plugins/elastic_search')
14
+
15
+ class << self
16
+ # @return [Array<String>]
17
+ #
18
+ # @since 0.2.0
19
+ def names
20
+ keys
21
+ end
22
+
23
+ # @param *plugins [String,Symbol]
24
+ # @return void
25
+ #
26
+ # @api public
27
+ # @since 0.2.0
28
+ def load!(*plugins)
29
+ (plugins.empty? ? names : plugins).each { |plugin| require_relative resolve(plugin) }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.2.0
5
+ module EvilEvents::ElasticSearch
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.2.0
5
+ module EvilEvents::Rails
6
+ end
@@ -14,5 +14,9 @@ module EvilEvents
14
14
  require_relative 'shared/delegator_resolver'
15
15
  require_relative 'shared/dependency_container'
16
16
  require_relative 'shared/clonable_module_builder'
17
+ require_relative 'shared/type_converter'
18
+ require_relative 'shared/type_converter/converter'
19
+ require_relative 'shared/type_converter/type_builder'
20
+ require_relative 'shared/type_converter/converter_registry'
17
21
  end
18
22
  end
@@ -11,7 +11,7 @@ module EvilEvents::Shared
11
11
  # @api public
12
12
  # @since 0.1.0
13
13
  def uuid
14
- SecureRandom.uuid
14
+ ::SecureRandom.uuid
15
15
  end
16
16
  end
17
17
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EvilEvents::Shared
4
+ # @api public
5
+ # @since 0.2.0
6
+ class TypeConverter
7
+ # @return [EvilEvents::Shared::TypeConverter::ConverterRegistry]
8
+ #
9
+ # @api public
10
+ # @since 0.2.0
11
+ attr_reader :registry
12
+
13
+ # @api public
14
+ # @since 0.2.0
15
+ def initialize
16
+ @registry = ConverterRegistry.new
17
+ end
18
+
19
+ # @param type_name [Symbol]
20
+ # @param coercer [Proc]
21
+ # @return [EvilEvents::Shared::TypeConverter::Converter]
22
+ #
23
+ # @see EvilEvents::Shared::TypeConverter::ConverterRegistry
24
+ #
25
+ # @api public
26
+ # @since 0.2.0
27
+ def register(type_name, coercer)
28
+ registry.register(type_name, coercer)
29
+ end
30
+
31
+ # @param type_name [Symbol]
32
+ # @param options [Hash]
33
+ # @return [EvilEvents::Shared::Types::Any]
34
+ #
35
+ # @see EvilEvents::Shared::TypeConverter::ConverterRegistry
36
+ #
37
+ # @api public
38
+ # @since 0.2.0
39
+ def resolve_type(type_name, **options)
40
+ registry.resolve(type_name).transform_to_type(**options)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ class EvilEvents::Shared::TypeConverter
4
+ # @api public
5
+ # @since 0.2.0
6
+ class Converter
7
+ # @return [Proc]
8
+ #
9
+ # @api public
10
+ # @since 0.2.0
11
+ attr_reader :coercer
12
+
13
+ # @param coercer [Proc]
14
+ #
15
+ # @api public
16
+ # @since 0.2.0
17
+ def initialize(coercer)
18
+ raise ArgumentError unless coercer.is_a?(Proc)
19
+
20
+ @coercer = coercer
21
+ end
22
+
23
+ # @param value [Mixed]
24
+ # @return [Mixed]
25
+ #
26
+ # @api public
27
+ # @since 0.2.0
28
+ def convert(value)
29
+ coercer.call(value)
30
+ end
31
+
32
+ # @option :default [Mixed]
33
+ # @return [EvilEvents::Shared::Types::Any]
34
+ #
35
+ # @see EvilEvents::Shared::TypeConverter::TypeBuilder
36
+ #
37
+ # @since 0.2.0
38
+ def transform_to_type(**options)
39
+ TypeBuilder.new.tap do |builder|
40
+ builder.append(:constructor, coercer)
41
+ builder.append(:default, options[:default]) if options.key?(:default)
42
+ end.result
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ class EvilEvents::Shared::TypeConverter
4
+ # @api public
5
+ # @since 0.2.0
6
+ class ConverterRegistry
7
+ # @since 0.2.0
8
+ ConverterRegistryError = Class.new(StandardError)
9
+ # @since 0.2.0
10
+ ConverterNotRegisteredError = Class.new(ConverterRegistryError)
11
+
12
+ # @return [Coucnrrent::Map]
13
+ #
14
+ # @api public
15
+ # @since 0.2.0
16
+ attr_reader :converters
17
+
18
+ # @api public
19
+ # @since 0.2.0
20
+ def initialize
21
+ @converters = EvilEvents::Shared::DependencyContainer.new
22
+ end
23
+
24
+ # @param type_name [Symbol]
25
+ # @param coercer [Proc]
26
+ # @raise ArgumentError
27
+ # @return [Converter]
28
+ #
29
+ # @api public
30
+ # @since 0.2.0
31
+ def register(type_name, coercer)
32
+ raise ArgumentError unless type_name.is_a?(Symbol)
33
+ raise ArgumentError unless coercer.is_a?(Proc)
34
+
35
+ Converter.new(coercer).tap do |converter|
36
+ converters.register(type_name, converter)
37
+ end
38
+ end
39
+
40
+ # @param type [Mixed]
41
+ # @raise ConverterNotRegisteredError
42
+ # @return [Mixed]
43
+ #
44
+ # @api public
45
+ # @since 0.2.0
46
+ def resolve(type)
47
+ converters[type]
48
+ end
49
+ alias_method :[], :resolve
50
+ end
51
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ class EvilEvents::Shared::TypeConverter
4
+ # @api public
5
+ # @since 0.2.0
6
+ class TypeBuilder
7
+ # @api public
8
+ # @since 0.2.0
9
+ def initialize
10
+ @type_atom = Concurrent::Atom.new(EvilEvents::Shared::Types::Any)
11
+ end
12
+
13
+ # @param option [Symbol]
14
+ # @param value [Mixed]
15
+ # @return self
16
+ #
17
+ # @api public
18
+ # @since 0.2.0
19
+ def append(option, value)
20
+ type_atom.swap do |type|
21
+ case option
22
+ when :default
23
+ # NOTE: Dry::Types callable wrapper (see Dry::Types::Default::Callable#evaulate)
24
+ default_value = value.is_a?(Proc) ? (->(_type) { value.call }) : (proc { value })
25
+ type.default(default_value)
26
+ when :constructor
27
+ type.constructor(value)
28
+ else
29
+ type
30
+ end
31
+ end
32
+
33
+ self
34
+ end
35
+
36
+ # @return [EvilEvents::Shared::Types::Any]
37
+ #
38
+ # @api public
39
+ # @since 0.2.0
40
+ def result
41
+ type_atom.value
42
+ end
43
+
44
+ private
45
+
46
+ # @return [Concurrent::Atom<EvilEvents::Shared::Types::Any>]
47
+ #
48
+ # @since 0.2.0
49
+ attr_reader :type_atom
50
+ end
51
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module EvilEvents
4
4
  # @api public
5
- # @since 0.1.0
6
- VERSION = '0.1.1'
5
+ # @since 0.2.0
6
+ VERSION = '0.2.0'
7
7
  end
metadata CHANGED
@@ -1,225 +1,225 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evil_events
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Ibragimov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-29 00:00:00.000000000 Z
11
+ date: 2017-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-monads
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.1
19
+ version: 0.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.1
26
+ version: 0.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dry-types
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.12.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.12.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dry-struct
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.3.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.3.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: dry-configurable
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.7.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.7.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: dry-container
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.6.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.6.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: concurrent-ruby
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '='
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: 1.0.5
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '='
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.0.5
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: coveralls
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '='
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 0.8.21
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '='
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.8.21
111
- - !ruby/object:Gem::Dependency
112
- name: pry
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '='
116
- - !ruby/object:Gem::Version
117
- version: 0.11.2
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '='
123
- - !ruby/object:Gem::Version
124
- version: 0.11.2
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: simplecov
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - '='
115
+ - - "~>"
130
116
  - !ruby/object:Gem::Version
131
117
  version: 0.14.1
132
118
  type: :development
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
- - - '='
122
+ - - "~>"
137
123
  - !ruby/object:Gem::Version
138
124
  version: 0.14.1
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: simplecov-json
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
- - - '='
129
+ - - "~>"
144
130
  - !ruby/object:Gem::Version
145
131
  version: '0.2'
146
132
  type: :development
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
- - - '='
136
+ - - "~>"
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0.2'
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: rubocop
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
- - - '='
143
+ - - "~>"
158
144
  - !ruby/object:Gem::Version
159
145
  version: 0.51.0
160
146
  type: :development
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
- - - '='
150
+ - - "~>"
165
151
  - !ruby/object:Gem::Version
166
152
  version: 0.51.0
167
153
  - !ruby/object:Gem::Dependency
168
- name: bundler
154
+ name: rspec
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
- - - '='
157
+ - - "~>"
172
158
  - !ruby/object:Gem::Version
173
- version: 1.15.4
159
+ version: 3.7.0
174
160
  type: :development
175
161
  prerelease: false
176
162
  version_requirements: !ruby/object:Gem::Requirement
177
163
  requirements:
178
- - - '='
164
+ - - "~>"
179
165
  - !ruby/object:Gem::Version
180
- version: 1.15.4
166
+ version: 3.7.0
181
167
  - !ruby/object:Gem::Dependency
182
- name: rake
168
+ name: rubocop-rspec
183
169
  requirement: !ruby/object:Gem::Requirement
184
170
  requirements:
185
- - - '='
171
+ - - "~>"
186
172
  - !ruby/object:Gem::Version
187
- version: 12.2.1
173
+ version: 1.20.1
188
174
  type: :development
189
175
  prerelease: false
190
176
  version_requirements: !ruby/object:Gem::Requirement
191
177
  requirements:
192
- - - '='
178
+ - - "~>"
193
179
  - !ruby/object:Gem::Version
194
- version: 12.2.1
180
+ version: 1.20.1
195
181
  - !ruby/object:Gem::Dependency
196
- name: rspec
182
+ name: pry
197
183
  requirement: !ruby/object:Gem::Requirement
198
184
  requirements:
199
- - - '='
185
+ - - ">="
200
186
  - !ruby/object:Gem::Version
201
- version: 3.7.0
187
+ version: '0'
202
188
  type: :development
203
189
  prerelease: false
204
190
  version_requirements: !ruby/object:Gem::Requirement
205
191
  requirements:
206
- - - '='
192
+ - - ">="
207
193
  - !ruby/object:Gem::Version
208
- version: 3.7.0
194
+ version: '0'
209
195
  - !ruby/object:Gem::Dependency
210
- name: rubocop-rspec
196
+ name: rake
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: bundler
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - '='
213
+ - - ">="
214
214
  - !ruby/object:Gem::Version
215
- version: 1.19.0
215
+ version: '0'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - '='
220
+ - - ">="
221
221
  - !ruby/object:Gem::Version
222
- version: 1.19.0
222
+ version: '0'
223
223
  description: Ultra simple, but very flexible and fully customizable event subsystem
224
224
  for ruby applications with a wide set of customization interfaces and smart event
225
225
  definition DSL.
@@ -243,8 +243,10 @@ files:
243
243
  - bin/setup
244
244
  - evil_events.gemspec
245
245
  - lib/evil_events.rb
246
- - lib/evil_events/adapters.rb
246
+ - lib/evil_events/application.rb
247
247
  - lib/evil_events/config.rb
248
+ - lib/evil_events/config/adapters.rb
249
+ - lib/evil_events/config/types.rb
248
250
  - lib/evil_events/core.rb
249
251
  - lib/evil_events/core/activity_logger.rb
250
252
  - lib/evil_events/core/bootstrap.rb
@@ -256,9 +258,13 @@ files:
256
258
  - lib/evil_events/core/broadcasting/dispatcher/mixin.rb
257
259
  - lib/evil_events/core/broadcasting/emitter.rb
258
260
  - lib/evil_events/core/config.rb
261
+ - lib/evil_events/core/error.rb
259
262
  - lib/evil_events/core/events.rb
260
263
  - lib/evil_events/core/events/abstract_event.rb
261
264
  - lib/evil_events/core/events/event_extensions/adapter_customizable.rb
265
+ - lib/evil_events/core/events/event_extensions/class_signature.rb
266
+ - lib/evil_events/core/events/event_extensions/class_signature/equalizer.rb
267
+ - lib/evil_events/core/events/event_extensions/class_signature/signature.rb
262
268
  - lib/evil_events/core/events/event_extensions/emittable.rb
263
269
  - lib/evil_events/core/events/event_extensions/manageable.rb
264
270
  - lib/evil_events/core/events/event_extensions/metadata_extendable.rb
@@ -286,9 +292,13 @@ files:
286
292
  - lib/evil_events/core/system/event_manager.rb
287
293
  - lib/evil_events/core/system/mock.rb
288
294
  - lib/evil_events/core/system/mocking.rb
295
+ - lib/evil_events/core/system/type_manager.rb
289
296
  - lib/evil_events/dispatcher_mixin.rb
290
297
  - lib/evil_events/emitter.rb
291
298
  - lib/evil_events/event.rb
299
+ - lib/evil_events/plugins.rb
300
+ - lib/evil_events/plugins/elastic_search.rb
301
+ - lib/evil_events/plugins/rails.rb
292
302
  - lib/evil_events/serializer.rb
293
303
  - lib/evil_events/shared.rb
294
304
  - lib/evil_events/shared/clonable_module_builder.rb
@@ -300,6 +310,10 @@ files:
300
310
  - lib/evil_events/shared/dependency_container.rb
301
311
  - lib/evil_events/shared/logger.rb
302
312
  - lib/evil_events/shared/structure.rb
313
+ - lib/evil_events/shared/type_converter.rb
314
+ - lib/evil_events/shared/type_converter/converter.rb
315
+ - lib/evil_events/shared/type_converter/converter_registry.rb
316
+ - lib/evil_events/shared/type_converter/type_builder.rb
303
317
  - lib/evil_events/shared/types.rb
304
318
  - lib/evil_events/subscriber_mixin.rb
305
319
  - lib/evil_events/types.rb