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.
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: