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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 986843810de58a199f02fdf539d2bfb3dba43e6d
4
- data.tar.gz: dbdfc671b5dd1ec85d3722b4ffa7c30e9ec4d0a3
3
+ metadata.gz: d00db3f1aa0790c17aa370f2828521fdd26b6faa
4
+ data.tar.gz: 57d27c48984c030993a0a33b82ff828ca90f4f04
5
5
  SHA512:
6
- metadata.gz: a4369875f79828cb66bf11da0f57780f1dddacc55680ec50ffb3ee1980ad9f8b592600d313e7cd221c18733a4de34e107497d084d469313c794ade69105b3f10
7
- data.tar.gz: 8837f6c33c9f7c812c2ef64355af6f3d21e8b14b03522e37c9e934f5f5ab7b22a137a8eed77b6163aeb1715e2c66af49da96217ecfbb2447534347cf17d1f464
6
+ metadata.gz: ba6dc33ab2075c945f6d49790926297f19025c1a70493f771fd12b9f103a2d40f7c1804e35bf6d97c8b85bb7e9efcdd85c21052f1d40997f544fba7cdf4bdada
7
+ data.tar.gz: 1b9dbb91cb57c985f8b55ec7c3497775637e3a9365d26cb3795de2857305d91bc73988eb13c02696698e543b31b834bc771cf418e8f81fa73632c0f4ecbe2284
@@ -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
@@ -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
- @enabled = true
41
+ self.enabled = true
38
42
  end
39
43
 
44
+ # Disables event propagation.
40
45
  def disable!
41
- @enabled = false
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
- @enabled
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
- broker_sym = generate_broker_sym(broker)
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
@@ -15,3 +15,5 @@ module Emittance
15
15
  end
16
16
 
17
17
  require 'emittance/dispatchers/synchronous'
18
+
19
+ Emittance::Brokerage.register_broker Emittance::Synchronous, :synchronous
@@ -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) << Emittance::Registration.new(event_klass, &callback)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Emittance
4
- VERSION = '0.0.4'
4
+ VERSION = '0.0.5'
5
5
  end
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
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