edrive 1.0.0 → 1.0.1

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
  SHA256:
3
- metadata.gz: 9cd4944abb890c46f40eb1bf9e27fc83df7c5fe2e3e8d698a1463783e670af9b
4
- data.tar.gz: 54ec78f62a48010a9b07b2a26b8e769b43b6cd088d2929a4aaeef83a712c2075
3
+ metadata.gz: 196413aba8d4ffa5a125864721625ffbdaf52acc1126dfcb09e27762cea3c98c
4
+ data.tar.gz: f35cdc6664c68a55282a1c9636774253cb1a10c93c8df56f8f016a34e2c8ee1c
5
5
  SHA512:
6
- metadata.gz: 25647f39711646dd577a39a8c723afdcec6cb7ef7b60222c2a3080663b83557497fadb6da046602161e8fa825346b167ff4a32bad33d617fb12b140b77ac945a
7
- data.tar.gz: d2c82215cc2217930d405bda18b196bbb9fd4197936e3a46c613ff606ab0824905de5d3c7dc00a6bfbd0e133e5fdb1ef38b716badb9123066c210fee63cb14d7
6
+ metadata.gz: 1d675ce3010139efba5432263c5e314374e62dce68baa4678971fe4d3a914d86ab9b271dd0d2b1899c7bf70cc1a6f2ce50b2a520d74144c9ffc13a9e2a51f2d1
7
+ data.tar.gz: 7243170413423430eb590518cdd7c697ed41bfc56db5b8e5592a56f128af2fc4c87944fd4ffb38ac5fe0fabf067bd1f8005642af6243879dd6b75fc18ba5e09e
@@ -0,0 +1,3 @@
1
+ pkg
2
+ coverage
3
+
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- edrive (1.0.0)
4
+ edrive (1.0.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Edrive
2
2
 
3
- We provide simple event dispatcher mechanism for your ruby products.
3
+ [![Gem Version](https://badge.fury.io/rb/edrive.svg)](https://badge.fury.io/rb/edrive)
4
+
5
+ Provide simple event dispatcher mechanism for all of ruby products.
4
6
 
5
7
  ## Installation
6
8
 
@@ -24,10 +26,10 @@ Or install it yourself as:
24
26
 
25
27
  ```ruby
26
28
  dispatcher = Edrive::Dispatcher.new
27
- dispatcher.subscribe(:event, -> { puts 1 })
28
- dispatcher.subscribe(:event, -> { puts 2 })
29
- dispatcher.subscribe(:event, -> { puts 3 })
30
- dispatcher.dispatch(:event)
29
+ dispatcher.on(:event, -> { puts 1 })
30
+ dispatcher.on(:event, -> { puts 2 })
31
+ dispatcher.on(:event, -> { puts 3 })
32
+ dispatcher.fire(:event)
31
33
 
32
34
  1
33
35
  2
@@ -38,11 +40,11 @@ dispatcher.dispatch(:event)
38
40
 
39
41
  ```ruby
40
42
  dispatcher = Edrive::Dispatcher.new
41
- dispatcher.subscribe(:event, ->(data) { data + 1 })
42
- dispatcher.subscribe(:event, ->(data) { data + 2 })
43
- dispatcher.subscribe(:event, ->(data) { data + 3 })
44
- dispatcher.subscribe(:event, ->(data) { puts data })
45
- dispatcher.dispatch_with_data(:event, 100)
43
+ dispatcher.on(:event, ->(data) { data + 1 })
44
+ dispatcher.on(:event, ->(data) { data + 2 })
45
+ dispatcher.on(:event, ->(data) { data + 3 })
46
+ dispatcher.on(:event, ->(data) { puts data })
47
+ dispatcher.fire_with_data(:event, 100)
46
48
 
47
49
  106
48
50
  ```
@@ -51,10 +53,10 @@ dispatcher.dispatch_with_data(:event, 100)
51
53
 
52
54
  ```ruby
53
55
  dispatcher = Edrive::Dispatcher.new
54
- dispatcher.subscribe_block(:event) { puts 1 }
55
- dispatcher.subscribe_block(:event) { puts 2 }
56
- dispatcher.subscribe_block(:event) { puts 3 }
57
- dispatcher.dispatch(:event)
56
+ dispatcher.on(:event) { puts 1 }
57
+ dispatcher.on(:event) { puts 2 }
58
+ dispatcher.on(:event) { puts 3 }
59
+ dispatcher.fire(:event)
58
60
 
59
61
  1
60
62
  2
@@ -65,10 +67,10 @@ dispatcher.dispatch(:event)
65
67
 
66
68
  ```ruby
67
69
  dispatcher = Edrive::Dispatcher.new
68
- dispatcher.subscribe_block(:event) { |data| data + 1 }
69
- dispatcher.subscribe_block(:event) { |data| data + 2 }
70
- dispatcher.subscribe_block(:event) { |data| data + 3 }
71
- dispatcher.dispatch_with_data(:event, 100)
70
+ dispatcher.on(:event) { |data| data + 1 }
71
+ dispatcher.on(:event) { |data| data + 2 }
72
+ dispatcher.on(:event) { |data| data + 3 }
73
+ dispatcher.fire(:event, 100)
72
74
 
73
75
  106
74
76
  ```
@@ -76,13 +78,13 @@ dispatcher.dispatch_with_data(:event, 100)
76
78
  ### clear target event
77
79
 
78
80
  ```ruby
79
- dispatcher.clear_subscribers!(:event)
81
+ dispatcher.clear!(:event)
80
82
  ```
81
83
 
82
84
  ### clean all event
83
85
 
84
86
  ```ruby
85
- dispatcher.clear_all_subscribers!
87
+ dispatcher.clear_all!
86
88
  ```
87
89
 
88
90
  ## Development
@@ -9,8 +9,12 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["MichinaoShimizu"]
10
10
  spec.email = ["shimizu.michinao@gmail.com"]
11
11
 
12
- spec.summary = %q{Generic Event Dispatcher}
13
- spec.description = %q{Generic Event Dispatcher}
12
+ spec.summary = %q{Generic Event Dispatcher. Provide simple event dispatcher mechanism for all of ruby products.
13
+
14
+ }
15
+ spec.description = %q{Generic Event Dispatcher. Provide simple event dispatcher mechanism for all of ruby products.
16
+
17
+ }
14
18
  spec.homepage = "https://github.com/MichinaoShimizu/edrive"
15
19
  spec.license = "MIT"
16
20
 
@@ -2,85 +2,72 @@ module Edrive
2
2
  # Simple Event Dispatcher
3
3
  # @author Michinao Shimizu <shimizu.michinao@gmail.com>
4
4
  class Dispatcher
5
- attr_accessor :event_listeners
6
-
7
5
  # initialize
8
6
  def initialize
9
- @event_listeners = {}
7
+ @events = {}
10
8
  end
11
9
 
12
- # Subscribe with proc, lambda
10
+ # regist handler (proc, lambda, block)
13
11
  # @param [Symbol] event event name symbol
14
- # @param [Proc] subscriber subscriber
12
+ # @param [Proc] handler handler (lambda, proc)
13
+ # @param [Block] block handler (block)
15
14
  # @raise ArgumentError
16
- # @return [Array] registered subscriber list
17
- def subscribe(event, subscriber)
18
- raise ArgumentError, 'subscriber must be Proc object' unless subscriber.is_a?(Proc)
19
- regist_subscriber_proc(event, subscriber)
15
+ # @return [Array] registered handler list
16
+ def on(event, handler = nil, &block)
17
+ hdl = block_given? ? block : handler
18
+ raise ArgumentError, 'handler must be Proc object' unless hdl.is_a?(Proc)
19
+ regist(event, hdl)
20
20
  end
21
21
 
22
- # Subscribe with block
23
- # @param [Symbol] event event name symbol
24
- # @param [Block] subscriber subscriber
25
- # @return [Array] registered subscriber list
26
- def subscribe_block(event, &subscriber)
27
- regist_subscriber_proc(event, subscriber)
28
- end
29
-
30
- # Dispatch specific event subscribers
22
+ # dispatch specific event handler
31
23
  # @param [Symbol] event event name
32
24
  # @param [Mixed] args
33
- # @return [Mixed] last subscriber return value
34
- def dispatch(event, *args)
25
+ # @return [Mixed] last handler return value
26
+ def fire(event, *args)
35
27
  result = nil
36
-
37
- @event_listeners[event]&.each do |subscriber|
38
- result = subscriber.call(*args)
39
- end
28
+ @events[event]&.each { |hdl| result = hdl.call(*args) }
40
29
  result
41
30
  end
42
31
 
43
- # Dispatch specific event subscribers with data
32
+ # dispatch specific event handlers with data
44
33
  # @param [Symbol] event event name
45
34
  # @param [Mixed] args
46
- # @return [Mixed] last subscriber return value
47
- def dispatch_with_data(event, data, *args)
35
+ # @return [Mixed] last handler return value
36
+ def fire_with_data(event, data, *args)
48
37
  result = data.dup
49
- @event_listeners[event]&.each do |subscriber|
50
- result = subscriber.call(result, *args)
51
- end
38
+ @events[event]&.each { |hdl| result = hdl.call(result, *args) }
52
39
  result
53
40
  end
54
41
 
55
- # Get specific event subscribers
42
+ # get event handlers
56
43
  # @param [Symbol] event event name symbol
57
- # @return [Array] registered subscriber list
58
- def subscribers(event)
59
- @event_listeners[event] || []
44
+ # @return [Array] registered handler list
45
+ def handlers(event)
46
+ @events[event] || []
60
47
  end
61
48
 
62
- # Clear specific event subscribers
49
+ # clear event handlers
63
50
  # @param [Symbol] event event name symbol
64
51
  # @return [Array] emnpty array
65
- def clear_subscribers!(event)
66
- @event_listeners[event] = []
52
+ def clear!(event)
53
+ @events[event] = []
67
54
  end
68
55
 
69
- # Clear all of event subscribers
56
+ # clear all of event handlers
70
57
  # @return [Hash] emnpty hash
71
- def clear_all_subscribers!
72
- @event_listeners = {}
58
+ def clear_all!
59
+ @events = {}
73
60
  end
74
61
 
75
62
  private
76
63
 
77
- # Regist subscriber proc
64
+ # regist hanlder to target event
78
65
  # @param [Symbol] event event name symbol
79
- # @param [Proc] subscriber subscriber
80
- # @return [Array] registered subscriber list
81
- def regist_subscriber_proc(event, subscriber)
82
- @event_listeners[event] ||= []
83
- @event_listeners[event] << subscriber
66
+ # @param [Proc] handler handler
67
+ # @return [Array] registered handler list
68
+ def regist(event, handler)
69
+ @events[event] ||= []
70
+ @events[event] << handler
84
71
  end
85
72
  end
86
73
  end
@@ -1,3 +1,3 @@
1
1
  module Edrive
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edrive
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - MichinaoShimizu
@@ -52,13 +52,15 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- description: Generic Event Dispatcher
55
+ description: "Generic Event Dispatcher. Provide simple event dispatcher mechanism
56
+ for all of ruby products.\n\n "
56
57
  email:
57
58
  - shimizu.michinao@gmail.com
58
59
  executables: []
59
60
  extensions: []
60
61
  extra_rdoc_files: []
61
62
  files:
63
+ - ".gitignore"
62
64
  - CODE_OF_CONDUCT.md
63
65
  - Gemfile
64
66
  - Gemfile.lock
@@ -94,5 +96,6 @@ rubyforge_project:
94
96
  rubygems_version: 2.7.6
95
97
  signing_key:
96
98
  specification_version: 4
97
- summary: Generic Event Dispatcher
99
+ summary: Generic Event Dispatcher. Provide simple event dispatcher mechanism for all
100
+ of ruby products.
98
101
  test_files: []