timeout 0.4.1 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2c10c971f22da3b85c5219ff6c8d8f018de3b04ba2ae7c64c4f368bd9e2ebdb7
4
- data.tar.gz: 26d74226d36fa316564ec6665218bb1665accbbe420305451285d0ff7799bc16
3
+ metadata.gz: fd4f136237f88c0a2be5a602882f7cdddc0f5ea1429de76f931cb2ec9718a93c
4
+ data.tar.gz: d86f8c2744f1ac20722c3d9def4979c1452b4548291cd8a287f89216199f1c7c
5
5
  SHA512:
6
- metadata.gz: a256682e2e237e067eb602add2644138a24cfbad1fce1c3d5b47173b8c1ae1184cff832799982bbff2127fdc2ff061ca2292047d41a15470c4c96b05975252c3
7
- data.tar.gz: 4d7b2d79b6e75f5519cd3b55f010a14c8612e01ac4f859a8352e812242556f7b7f7ddbd53fdf793bfff7815ac6a080bbb71ce7690938890c93f8cda44002e6e6
6
+ metadata.gz: 38d56618f21b6b4a5b75cf0e40ec66341aba9dab49ff948becee93a8ca1985e759208b7a4408511914d21f818ba1c37dae2fa2b6af48f43d72e1fc555eddf9b4
7
+ data.tar.gz: acdbb666b3d85f2ca400e583d29f282e1e1568b7fa0f334ea502ad18f17ff99e64bc6b3cf4eb111a283be9b1e88bea1068a249aa6caf5d8bcbc64d745ba7f2e9
data/.document ADDED
@@ -0,0 +1,3 @@
1
+ LICENSE.txt
2
+ README.md
3
+ lib/
@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without
4
4
  modification, are permitted provided that the following conditions
5
5
  are met:
6
6
  1. Redistributions of source code must retain the above copyright
7
- notice, this list of conditions and the following disclaimer.
7
+ notice, this list of conditions and the following disclaimer.
8
8
  2. Redistributions in binary form must reproduce the above copyright
9
- notice, this list of conditions and the following disclaimer in the
10
- documentation and/or other materials provided with the distribution.
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
11
 
12
12
  THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
13
  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
data/COPYING ADDED
@@ -0,0 +1,56 @@
1
+ Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
+ You can redistribute it and/or modify it under either the terms of the
3
+ 2-clause BSDL (see the file BSDL), or the conditions below:
4
+
5
+ 1. You may make and give away verbatim copies of the source form of the
6
+ software without restriction, provided that you duplicate all of the
7
+ original copyright notices and associated disclaimers.
8
+
9
+ 2. You may modify your copy of the software in any way, provided that
10
+ you do at least ONE of the following:
11
+
12
+ a. place your modifications in the Public Domain or otherwise
13
+ make them Freely Available, such as by posting said
14
+ modifications to Usenet or an equivalent medium, or by allowing
15
+ the author to include your modifications in the software.
16
+
17
+ b. use the modified software only within your corporation or
18
+ organization.
19
+
20
+ c. give non-standard binaries non-standard names, with
21
+ instructions on where to get the original software distribution.
22
+
23
+ d. make other distribution arrangements with the author.
24
+
25
+ 3. You may distribute the software in object code or binary form,
26
+ provided that you do at least ONE of the following:
27
+
28
+ a. distribute the binaries and library files of the software,
29
+ together with instructions (in the manual page or equivalent)
30
+ on where to get the original distribution.
31
+
32
+ b. accompany the distribution with the machine-readable source of
33
+ the software.
34
+
35
+ c. give non-standard binaries non-standard names, with
36
+ instructions on where to get the original software distribution.
37
+
38
+ d. make other distribution arrangements with the author.
39
+
40
+ 4. You may modify and include the part of the software into any other
41
+ software (possibly commercial). But some files in the distribution
42
+ are not written by the author, so that they are not under these terms.
43
+
44
+ For the list of those files and their copying conditions, see the
45
+ file LEGAL.
46
+
47
+ 5. The scripts and library files supplied as input to or produced as
48
+ output from the software do not automatically fall under the
49
+ copyright of the software, but belong to whomever generated them,
50
+ and may be sold commercially, and may be aggregated with this
51
+ software.
52
+
53
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
54
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
55
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
+ PURPOSE.
data/README.md CHANGED
@@ -3,10 +3,6 @@
3
3
  Timeout provides a way to auto-terminate a potentially long-running
4
4
  operation if it hasn't finished in a fixed amount of time.
5
5
 
6
- Previous versions didn't use a module for namespacing, however
7
- #timeout is provided for backwards compatibility. You
8
- should prefer Timeout.timeout instead.
9
-
10
6
  ## Installation
11
7
 
12
8
  Add this line to your application's Gemfile:
@@ -27,7 +23,7 @@ Or install it yourself as:
27
23
 
28
24
  ```ruby
29
25
  require 'timeout'
30
- status = Timeout::timeout(5) {
26
+ status = Timeout.timeout(5) {
31
27
  # Something that should be interrupted if it takes more than 5 seconds...
32
28
  }
33
29
  ```
data/lib/timeout.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  # == Synopsis
5
5
  #
6
6
  # require 'timeout'
7
- # status = Timeout::timeout(5) {
7
+ # status = Timeout.timeout(5) {
8
8
  # # Something that should be interrupted if it takes more than 5 seconds...
9
9
  # }
10
10
  #
@@ -13,28 +13,25 @@
13
13
  # Timeout provides a way to auto-terminate a potentially long-running
14
14
  # operation if it hasn't finished in a fixed amount of time.
15
15
  #
16
- # Previous versions didn't use a module for namespacing, however
17
- # #timeout is provided for backwards compatibility. You
18
- # should prefer Timeout.timeout instead.
19
- #
20
16
  # == Copyright
21
17
  #
22
18
  # Copyright:: (C) 2000 Network Applied Communication Laboratory, Inc.
23
19
  # Copyright:: (C) 2000 Information-technology Promotion Agency, Japan
24
20
 
25
21
  module Timeout
26
- VERSION = "0.4.1"
22
+ # The version
23
+ VERSION = "0.4.3"
27
24
 
28
25
  # Internal error raised to when a timeout is triggered.
29
26
  class ExitException < Exception
30
- def exception(*)
27
+ def exception(*) # :nodoc:
31
28
  self
32
29
  end
33
30
  end
34
31
 
35
32
  # Raised by Timeout.timeout when the block times out.
36
33
  class Error < RuntimeError
37
- def self.handle_timeout(message)
34
+ def self.handle_timeout(message) # :nodoc:
38
35
  exc = ExitException.new(message)
39
36
 
40
37
  begin
@@ -144,9 +141,10 @@ module Timeout
144
141
  # Perform an operation in a block, raising an error if it takes longer than
145
142
  # +sec+ seconds to complete.
146
143
  #
147
- # +sec+:: Number of seconds to wait for the block to terminate. Any number
148
- # 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
149
146
  # value of 0 or +nil+ will execute the block without any timeout.
147
+ # Any negative number will raise an ArgumentError.
150
148
  # +klass+:: Exception Class to raise if the block fails to terminate
151
149
  # in +sec+ seconds. Omitting will use the default, Timeout::Error
152
150
  # +message+:: Error message to raise with Exception Class.
@@ -168,6 +166,7 @@ module Timeout
168
166
  # a module method, so you can call it directly as Timeout.timeout().
169
167
  def timeout(sec, klass = nil, message = nil, &block) #:yield: +sec+
170
168
  return yield(sec) if sec == nil or sec.zero?
169
+ raise ArgumentError, "Timeout sec must be a non-negative number" if 0 > sec
171
170
 
172
171
  message ||= "execution expired"
173
172
 
data/timeout.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.metadata["homepage_uri"] = spec.homepage
22
22
  spec.metadata["source_code_uri"] = spec.homepage
23
+ spec.metadata["changelog_uri"] = spec.homepage + "/releases"
23
24
 
24
25
  spec.required_ruby_version = '>= 2.6.0'
25
26
 
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.1
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yukihiro Matsumoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-07 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:
@@ -17,8 +17,10 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - ".document"
21
+ - BSDL
22
+ - COPYING
20
23
  - Gemfile
21
- - LICENSE.txt
22
24
  - README.md
23
25
  - lib/timeout.rb
24
26
  - timeout.gemspec
@@ -29,6 +31,7 @@ licenses:
29
31
  metadata:
30
32
  homepage_uri: https://github.com/ruby/timeout
31
33
  source_code_uri: https://github.com/ruby/timeout
34
+ changelog_uri: https://github.com/ruby/timeout/releases
32
35
  post_install_message:
33
36
  rdoc_options: []
34
37
  require_paths:
@@ -44,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
44
47
  - !ruby/object:Gem::Version
45
48
  version: '0'
46
49
  requirements: []
47
- rubygems_version: 3.5.0.dev
50
+ rubygems_version: 3.5.11
48
51
  signing_key:
49
52
  specification_version: 4
50
53
  summary: Auto-terminate potentially long-running operations in Ruby.