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