emittance 0.0.4 → 0.0.5
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 +4 -4
- data/lib/emittance/broker.rb +0 -9
- data/lib/emittance/brokerage.rb +13 -17
- data/lib/emittance/brokers/synchronous.rb +2 -0
- data/lib/emittance/dispatchers/synchronous.rb +15 -1
- data/lib/emittance/version.rb +1 -1
- data/lib/emittance.rb +0 -1
- metadata +1 -2
- data/lib/emittance/registration.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d00db3f1aa0790c17aa370f2828521fdd26b6faa
|
4
|
+
data.tar.gz: 57d27c48984c030993a0a33b82ff828ca90f4f04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba6dc33ab2075c945f6d49790926297f19025c1a70493f771fd12b9f103a2d40f7c1804e35bf6d97c8b85bb7e9efcdd85c21052f1d40997f544fba7cdf4bdada
|
7
|
+
data.tar.gz: 1b9dbb91cb57c985f8b55ec7c3497775637e3a9365d26cb3795de2857305d91bc73988eb13c02696698e543b31b834bc771cf418e8f81fa73632c0f4ecbe2284
|
data/lib/emittance/broker.rb
CHANGED
@@ -16,15 +16,6 @@ module Emittance
|
|
16
16
|
def dispatcher
|
17
17
|
const_get DISPATCHER_KLASS_NAME
|
18
18
|
end
|
19
|
-
|
20
|
-
def inherited(subklass)
|
21
|
-
register_broker subklass
|
22
|
-
super
|
23
|
-
end
|
24
|
-
|
25
|
-
def register_broker(broker)
|
26
|
-
Emittance::Brokerage.register_broker broker
|
27
|
-
end
|
28
19
|
end
|
29
20
|
end
|
30
21
|
end
|
data/lib/emittance/brokerage.rb
CHANGED
@@ -16,33 +16,39 @@ module Emittance
|
|
16
16
|
broker.process_event event
|
17
17
|
end
|
18
18
|
|
19
|
+
# @return [Class] the currently selected broker
|
19
20
|
def broker
|
20
21
|
@current_broker
|
21
22
|
end
|
22
23
|
|
24
|
+
# @param identifier [Symbol] the symbol you have registered the broker to
|
23
25
|
def use_broker(identifier)
|
24
26
|
@current_broker = registry.fetch identifier
|
25
27
|
end
|
26
28
|
|
27
29
|
# @param broker [Emittance::Broker] the broker you would like to register
|
28
|
-
def register_broker(broker)
|
29
|
-
registry.register broker
|
30
|
+
def register_broker(broker, symbol)
|
31
|
+
registry.register broker, symbol
|
30
32
|
end
|
31
33
|
|
34
|
+
# @return [Module] the registry containing all broker registrations
|
32
35
|
def registry
|
33
36
|
Emittance::Brokerage::Registry
|
34
37
|
end
|
35
38
|
|
39
|
+
# Enables event propagation.
|
36
40
|
def enable!
|
37
|
-
|
41
|
+
self.enabled = true
|
38
42
|
end
|
39
43
|
|
44
|
+
# Disables event propagation.
|
40
45
|
def disable!
|
41
|
-
|
46
|
+
self.enabled = false
|
42
47
|
end
|
43
48
|
|
49
|
+
# @return [Boolean] true if event propagation is enabled, false otherwise
|
44
50
|
def enabled?
|
45
|
-
|
51
|
+
enabled
|
46
52
|
end
|
47
53
|
|
48
54
|
private
|
@@ -55,25 +61,15 @@ module Emittance
|
|
55
61
|
@brokers = {}
|
56
62
|
|
57
63
|
class << self
|
58
|
-
include Emittance::Helpers::StringHelpers
|
59
|
-
|
60
64
|
attr_reader :brokers
|
61
65
|
|
62
|
-
def register(broker)
|
63
|
-
|
64
|
-
brokers[broker_sym] = broker
|
66
|
+
def register(broker, symbol)
|
67
|
+
brokers[symbol.to_sym] = broker
|
65
68
|
end
|
66
69
|
|
67
70
|
def fetch(broker_id)
|
68
71
|
brokers[broker_id.to_sym]
|
69
72
|
end
|
70
|
-
|
71
|
-
private
|
72
|
-
|
73
|
-
def generate_broker_sym(broker)
|
74
|
-
camel_case = broker.name.split('::').last
|
75
|
-
snake_case(camel_case).to_sym
|
76
|
-
end
|
77
73
|
end
|
78
74
|
end
|
79
75
|
end
|
@@ -25,7 +25,7 @@ module Emittance
|
|
25
25
|
def register(identifier, &callback)
|
26
26
|
event_klass = find_event_klass identifier
|
27
27
|
registrations[event_klass] ||= empty_registration
|
28
|
-
registrations_for(event_klass) <<
|
28
|
+
registrations_for(event_klass) << Registration.new(event_klass, &callback)
|
29
29
|
|
30
30
|
callback
|
31
31
|
end
|
@@ -61,6 +61,20 @@ module Emittance
|
|
61
61
|
->(event) { object.send method_name, event }
|
62
62
|
end
|
63
63
|
end
|
64
|
+
|
65
|
+
# @private
|
66
|
+
class Registration
|
67
|
+
attr_reader :event_klass
|
68
|
+
|
69
|
+
def initialize(event_klass, &callback)
|
70
|
+
@event_klass = event_klass
|
71
|
+
@callback = callback
|
72
|
+
end
|
73
|
+
|
74
|
+
def call(event)
|
75
|
+
@callback.call event
|
76
|
+
end
|
77
|
+
end
|
64
78
|
end
|
65
79
|
end
|
66
80
|
end
|
data/lib/emittance/version.rb
CHANGED
data/lib/emittance.rb
CHANGED
@@ -8,7 +8,6 @@ require 'emittance/helpers/constant_helpers'
|
|
8
8
|
require 'emittance/event_lookup'
|
9
9
|
require 'emittance/brokerage'
|
10
10
|
require 'emittance/broker'
|
11
|
-
require 'emittance/registration'
|
12
11
|
require 'emittance/event'
|
13
12
|
require 'emittance/emitter'
|
14
13
|
require 'emittance/watcher'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emittance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Guillen
|
@@ -127,7 +127,6 @@ files:
|
|
127
127
|
- lib/emittance/event_lookup.rb
|
128
128
|
- lib/emittance/helpers/constant_helpers.rb
|
129
129
|
- lib/emittance/helpers/string_helpers.rb
|
130
|
-
- lib/emittance/registration.rb
|
131
130
|
- lib/emittance/version.rb
|
132
131
|
- lib/emittance/watcher.rb
|
133
132
|
homepage: https://github.com/aastronautss/emittance
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Emittance
|
4
|
-
# @private
|
5
|
-
class Registration
|
6
|
-
attr_reader :event_klass
|
7
|
-
|
8
|
-
def initialize(event_klass, &callback)
|
9
|
-
@event_klass = event_klass
|
10
|
-
@callback = callback
|
11
|
-
end
|
12
|
-
|
13
|
-
def call(event)
|
14
|
-
@callback.call event
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|