evil_events 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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