timeout 0.4.2 → 0.4.3

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 +4 -4
  2. data/lib/timeout.rb +5 -3
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9390c49817b43adbd0f8eabd5d93f5535fd01a2d8007c901cdb0a4a85c8702eb
4
- data.tar.gz: a8a0e97bf6a3f61eb0911911b476396b265ee0088aaeecfb136efcfb68799bbf
3
+ metadata.gz: fd4f136237f88c0a2be5a602882f7cdddc0f5ea1429de76f931cb2ec9718a93c
4
+ data.tar.gz: d86f8c2744f1ac20722c3d9def4979c1452b4548291cd8a287f89216199f1c7c
5
5
  SHA512:
6
- metadata.gz: d0c3e963a4bb920583921a854057fc4c1b0f89d9c7a5a44a27e59455ce74c81e98486f9fe2904124bd25a601ed420f5ec47374ed48480ab97d65f3f837b0549a
7
- data.tar.gz: 23e8bb2e41674a81dcf8440184e66565afdd69b08f0d4402cbc0a27453d2afab9d10bad8905f92aac2be22a41dc20cdcfc70f7f6d87ca6019e8815de57362492
6
+ metadata.gz: 38d56618f21b6b4a5b75cf0e40ec66341aba9dab49ff948becee93a8ca1985e759208b7a4408511914d21f818ba1c37dae2fa2b6af48f43d72e1fc555eddf9b4
7
+ data.tar.gz: acdbb666b3d85f2ca400e583d29f282e1e1568b7fa0f334ea502ad18f17ff99e64bc6b3cf4eb111a283be9b1e88bea1068a249aa6caf5d8bcbc64d745ba7f2e9
data/lib/timeout.rb CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  module Timeout
22
22
  # The version
23
- VERSION = "0.4.2"
23
+ VERSION = "0.4.3"
24
24
 
25
25
  # Internal error raised to when a timeout is triggered.
26
26
  class ExitException < Exception
@@ -141,9 +141,10 @@ module Timeout
141
141
  # Perform an operation in a block, raising an error if it takes longer than
142
142
  # +sec+ seconds to complete.
143
143
  #
144
- # +sec+:: Number of seconds to wait for the block to terminate. Any number
145
- # may be used, including Floats to specify fractional seconds. A
144
+ # +sec+:: Number of seconds to wait for the block to terminate. Any non-negative number
145
+ # or nil may be used, including Floats to specify fractional seconds. A
146
146
  # value of 0 or +nil+ will execute the block without any timeout.
147
+ # Any negative number will raise an ArgumentError.
147
148
  # +klass+:: Exception Class to raise if the block fails to terminate
148
149
  # in +sec+ seconds. Omitting will use the default, Timeout::Error
149
150
  # +message+:: Error message to raise with Exception Class.
@@ -165,6 +166,7 @@ module Timeout
165
166
  # a module method, so you can call it directly as Timeout.timeout().
166
167
  def timeout(sec, klass = nil, message = nil, &block) #:yield: +sec+
167
168
  return yield(sec) if sec == nil or sec.zero?
169
+ raise ArgumentError, "Timeout sec must be a non-negative number" if 0 > sec
168
170
 
169
171
  message ||= "execution expired"
170
172
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timeout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yukihiro Matsumoto
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-06 00:00:00.000000000 Z
11
+ date: 2024-12-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Auto-terminate potentially long-running operations in Ruby.
14
14
  email:
@@ -32,7 +32,7 @@ metadata:
32
32
  homepage_uri: https://github.com/ruby/timeout
33
33
  source_code_uri: https://github.com/ruby/timeout
34
34
  changelog_uri: https://github.com/ruby/timeout/releases
35
- post_install_message:
35
+ post_install_message:
36
36
  rdoc_options: []
37
37
  require_paths:
38
38
  - lib
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
48
  version: '0'
49
49
  requirements: []
50
50
  rubygems_version: 3.5.11
51
- signing_key:
51
+ signing_key:
52
52
  specification_version: 4
53
53
  summary: Auto-terminate potentially long-running operations in Ruby.
54
54
  test_files: []