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.
Files changed (3) hide show
  1. checksums.yaml +8 -8
  2. data/lib/async_emitter.rb +16 -17
  3. metadata +2 -1
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTYyM2Y2ZWRhY2I3MTUyMzY0YTAxYzAxZTY2ZjhhNDQ5OTQwYzA3NQ==
4
+ ZjM0OGFjOGM2OGFkNmY5NmM1NWUzMWYyZThlYjUyMWU1ODRhZTdkNQ==
5
5
  data.tar.gz: !binary |-
6
- ZjNhMmM1ZjliZTM5ZWY3Y2FiNWNhMTRiMmNhYmUxNzY4MTdiNTdlOQ==
6
+ NDMwZDlhZjNjNWFmZGIxZjY3Y2U1MDgzN2NiNjQ2NzViZjM1ZmEyYw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Njg5MDFjMjI0YTk0Y2NkOGI3YTk1ZjdiZmY4ZGZlMTkwNDhjMjZkYjViOTJh
10
- ZDIyNjRkNjY3OThmMjc2ODJiZWYxMjU2OGVmMjQ0OTJhZWQyMjAzZDkzNmNm
11
- M2YzYTdiMTIxZTUxNGQ5OGFlNjc3MmUwZDYyMzA5ZDdiNTk1ZmI=
9
+ ZDJmZGI3YjBmMjEyZDIyZTM0ZjI5MTAyZTQ0ODJmNTgyMzUzYTE0MWFlYWYy
10
+ MTQ1MTY1N2EyZTBlZjg3NjMyNzAzNzdmOWRjMTFjNmZjNzgyZGM5YWQ4ZTk5
11
+ ZGIxZjY0MWM4ZDdiNjYwM2RkYjc0MTVkMDYxYmEwMWQwZjMyM2M=
12
12
  data.tar.gz: !binary |-
13
- YzA0MzQzYzkyZmIyODBiYjFkYzZjY2ExNTkwYjg5M2YyZmY2M2IyMDIyZjYz
14
- YjRiNzBmMjg1MTAzYTZiOWNkNWJhYjYyNWFlMjdmN2UzZjk5OTgzOTkyYWE2
15
- OGU5ZjI0ZmJkMTdkMDQzNzg2YmI4YWEyMWQxNjIzM2M1MDk1MTU=
13
+ MzNlMmUxZDZmZTFjMjFlMGFhYTRiM2JlNzFlZWRlZTY2NzY0NjA2OTUwZTc0
14
+ ZmMyNmE1NTM1OGI1ZDdkYTc1YjViNWYwZjg5NDE4OTZhOWQ2NmJlODQzNTlh
15
+ OWI1MmJiZGZlN2IyNmRjNjk0NDM0OTg4NzczNDg4MmJjMjFiMDk=
@@ -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.0
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: