async_emitter 1.1.0 → 1.1.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 +8 -8
- data/lib/async_emitter.rb +16 -17
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjM0OGFjOGM2OGFkNmY5NmM1NWUzMWYyZThlYjUyMWU1ODRhZTdkNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDMwZDlhZjNjNWFmZGIxZjY3Y2U1MDgzN2NiNjQ2NzViZjM1ZmEyYw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDJmZGI3YjBmMjEyZDIyZTM0ZjI5MTAyZTQ0ODJmNTgyMzUzYTE0MWFlYWYy
|
10
|
+
MTQ1MTY1N2EyZTBlZjg3NjMyNzAzNzdmOWRjMTFjNmZjNzgyZGM5YWQ4ZTk5
|
11
|
+
ZGIxZjY0MWM4ZDdiNjYwM2RkYjc0MTVkMDYxYmEwMWQwZjMyM2M=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzNlMmUxZDZmZTFjMjFlMGFhYTRiM2JlNzFlZWRlZTY2NzY0NjA2OTUwZTc0
|
14
|
+
ZmMyNmE1NTM1OGI1ZDdkYTc1YjViNWYwZjg5NDE4OTZhOWQ2NmJlODQzNTlh
|
15
|
+
OWI1MmJiZGZlN2IyNmRjNjk0NDM0OTg4NzczNDg4MmJjMjFiMDk=
|
data/lib/async_emitter.rb
CHANGED
@@ -7,21 +7,22 @@ require 'thread'
|
|
7
7
|
# events can be registered for each key and listeners can be registered
|
8
8
|
# for one or many events. Listeners for a key event can be released.
|
9
9
|
#
|
10
|
-
# @example
|
11
|
-
# emitter = AsyncEmitter.new
|
12
|
-
# emitter.on :error, lambda { |e| puts "Error: #{e}" }
|
13
|
-
# emitter.on :data, lambda { |data| puts "Data: #{data}" }
|
14
|
-
#
|
15
|
-
# begin
|
16
|
-
# data = get_data_from_somewhere
|
17
|
-
# emitter.emit :data, data
|
18
|
-
# rescue Exception => e
|
19
|
-
# emitter.emit :error, e
|
20
|
-
# end
|
21
|
-
#
|
22
10
|
# Where more then one listener is registered for an event they are
|
23
11
|
# notified in the order they are recieved.
|
24
12
|
#
|
13
|
+
# == Example
|
14
|
+
#
|
15
|
+
# emitter = AsyncEmitter.new
|
16
|
+
# emitter.on :error, lambda { |e| puts "Error: #{e}" }
|
17
|
+
# emitter.on :data, lambda { |data| puts "Data: #{data}" }
|
18
|
+
#
|
19
|
+
# begin
|
20
|
+
# data = get_data_from_somewhere
|
21
|
+
# emitter.emit :data, data
|
22
|
+
# rescue Exception => e
|
23
|
+
# emitter.emit :error, e
|
24
|
+
# end
|
25
|
+
#
|
25
26
|
# @author Greg Martin
|
26
27
|
####################################################################################
|
27
28
|
|
@@ -122,16 +123,13 @@ class AsyncEmitter
|
|
122
123
|
o = @emissions[token][:p][i][:o]
|
123
124
|
p = @emissions[token][:p][i][:p]
|
124
125
|
|
125
|
-
if o
|
126
|
-
@emissions[token][:p].slice! i
|
127
|
-
end
|
128
|
-
|
129
126
|
if i >= @emissions[token][:p].length - 1
|
130
127
|
while @emissions[token][:data].length > 0 do
|
131
128
|
data = @emissions[token][:data].shift
|
132
129
|
p.call data
|
133
130
|
if o
|
134
131
|
@emissions[token][:data] = []
|
132
|
+
@emissions[token][:p].slice! i
|
135
133
|
break
|
136
134
|
end
|
137
135
|
end
|
@@ -139,11 +137,12 @@ class AsyncEmitter
|
|
139
137
|
@emissions[token][:data].each do |data|
|
140
138
|
p.call data
|
141
139
|
if o
|
140
|
+
@emissions[token][:p].slice! i
|
142
141
|
break
|
143
142
|
end
|
144
143
|
end
|
145
144
|
end
|
146
|
-
|
145
|
+
|
147
146
|
end
|
148
147
|
end
|
149
148
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async_emitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Martin
|
@@ -42,3 +42,4 @@ signing_key:
|
|
42
42
|
specification_version: 4
|
43
43
|
summary: AsyncEmitter
|
44
44
|
test_files: []
|
45
|
+
has_rdoc:
|