async-tools 0.1.8 → 0.1.9

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: 30b2f096bcae3c902134fe3ad731ddcea3f566e72c63b474abdb21dc36e56bcc
4
- data.tar.gz: 24d926ed9aaac361eef77fa395e5c3107fa3d1c105120cc8c3b6d46f4b8d6c3d
3
+ metadata.gz: 434f1d892b6acee168dbbde217a37879fdbf203e4a64bd3dd4ab49fee1feef44
4
+ data.tar.gz: 0e8fa621829f5f77c7d96d22c4f753b81668ee32e291c34ebf09d97d11f9ec2a
5
5
  SHA512:
6
- metadata.gz: deb046195c2fa54061921ae1448f947f1acfb6c6d62db211015242e737f356b3ba1960be512ca8e0d3563a5c2b0dec686d809d53a86d7e972cf4b90adcea893f
7
- data.tar.gz: dae8dc2f7f8912bc83f24f4c4a6fce5b3ec2c24a66aac33a8ee434ea14336480274da533402aea719450f95f51bfe6f4beb04f180ba31aa8a8d4cd485276d823
6
+ metadata.gz: 1f96eedf368fca4bf9fe1b86f6c4b2d312f8b8f40a09dac2a3b2b905b250272a84d77f79cd0e2eb4f2cc1ef87eea67366f114722ed7907c187f77586af44a640
7
+ data.tar.gz: 61d05af06a151b19a7a01013efee71ee251a8f011732e904f7f6485438c5cbb86341e27106190ba2e516005342854e564f19d8248cc7928749cedcd4a543f0eb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- async-tools (0.1.8)
4
+ async-tools (0.1.9)
5
5
  async (~> 2.3)
6
6
  zeitwerk (~> 2.6)
7
7
 
data/lib/async/timer.rb CHANGED
@@ -7,15 +7,22 @@ class Async::Timer
7
7
 
8
8
  class AlreadyStarted < Error; end
9
9
 
10
- def initialize(delay, repeat: true, start: true, run_on_start: false, parent: Async::Task.current, call: nil, &block) # rubocop:disable Metrics/ParameterLists
10
+ def initialize(delay, # rubocop:disable Metrics/CyclomaticComplexity,Metrics/ParameterLists
11
+ repeat: true,
12
+ start: true,
13
+ run_on_start: false,
14
+ call: nil,
15
+ on_error: nil,
16
+ parent: Async::Task.current, &block)
11
17
  callables = [call, block]
12
18
  raise ArgumentError, "either block or call: must be given" if callables.all?(&:nil?) || callables.none?(&:nil?)
13
19
 
14
20
  @delay = delay
15
21
  @repeat = repeat
16
22
  @run_on_start = run_on_start
17
- @parent = parent
18
23
  @callable = call || block
24
+ @on_error = on_error || ->(e) { raise e }
25
+ @parent = parent
19
26
 
20
27
  self.start if start
21
28
  end
@@ -43,6 +50,8 @@ class Async::Timer
43
50
  sleep(@delay)
44
51
  call
45
52
  break unless @repeat
53
+ rescue StandardError => e
54
+ @on_error.call(e)
46
55
  ensure
47
56
  @active = false
48
57
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Async # rubocop:disable Style/ClassAndModuleChildren
4
4
  module Tools
5
- VERSION = "0.1.8"
5
+ VERSION = "0.1.9"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Sinyavskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-28 00:00:00.000000000 Z
11
+ date: 2023-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async