try_again 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README +7 -2
  3. data/lib/try_again.rb +5 -3
  4. metadata +6 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f543d0fe4fdeaefbdd2a0a9ddc2a36b9ec20c062
4
- data.tar.gz: a3c2572280de7f2eb06eb02a16a7fdf74aee9b02
3
+ metadata.gz: 6f2dacba823977338da8aba37543f4c4ed0dd754
4
+ data.tar.gz: a89790e84b3ce0d48d4209f812a9c2842ce33b7c
5
5
  SHA512:
6
- metadata.gz: 4e873a8df0938b8f635f9970c79c31b2a9d33eb4a92030fb3f1be301930ef501de25db37ac252a1cf5b03397606d3ef007764230adf0a9a2868ba51967afe54f
7
- data.tar.gz: ddfae4232b83ca05acf5c3a5c1ab932eee37b4c577b064be51bb6b1c82330340710e392e1cb43dfecf95883f7061a53959d90feb3b3c10dd5f8c0998fdd977a4
6
+ metadata.gz: 5be11f176f915169aa9f5a8b9d94fc60bfc9c6af8fd89a2fb092e3e1a41576989920b8f53098c1ea0da05417da7ad733e4e426c96b74add664420252261386ca
7
+ data.tar.gz: 00dd4f7ad51523e47ed31588bd3dd3f04a30149d7d5e23c190f418ea2bcb3f6c2dba04a8f0a34047471e12bac911f91121e8d7499bc74493a3c8e1358f539365
data/README CHANGED
@@ -1,3 +1,8 @@
1
+ ##New in version 2.0.0##
2
+ This version is incompatible with ruby < 2.x
3
+ Also, if kill == true, it preserves the original error to show you what really went wrong
4
+ #####
5
+
1
6
  This method is usefull for when you want to attempt to get a resource on a network and it may fail.
2
7
  Or maybe you know that there's a possibility that the databases haven't sync yet and you want to try a few times till they do.
3
8
 
@@ -19,7 +24,7 @@ You have a few options that you can pass:
19
24
  :attempts => (int) number of times to try run block till give up; defaults 3
20
25
  :sleep => (int) seconds between each attempt; defaults 3
21
26
  :error => (Constant) error to listen to; defaults StandardError
22
- :output => (IO Object) It's kinda like a debug mode, but you can send an object like $stderr our $stdout or even a file so it's output doesn't get in the way of your normal output; defaults nil
27
+ :output => Debug mode, but you can send anything that responds to :puts and you'll get debug info there; defaults nil
23
28
  :kill => (Boolean) If true after the last attempt it will raise your error back to you; defaults false
24
29
 
25
30
  You pass them as an hash like so:
@@ -28,4 +33,4 @@ TryAgain.retry(:error => MyCustomErrorClass) do
28
33
  raise MyCustomErrorClass if something
29
34
  end
30
35
 
31
- Finally, if :kill => false this method returns a Boolean whatever it passed or not.
36
+ Finally, if :kill => false TryAgain.retry returns a Boolean telling you whatever there was an error or not.
@@ -5,8 +5,10 @@ module TryAgain
5
5
  #@param block [Block] block of code to be attempted
6
6
  #@return [Boolean]
7
7
  def self.retry( sleep: 3, attempts: 3, error: StandardError, kill: false, output: nil, &block )
8
+ tries||=0
9
+ tries+=1
8
10
  out = output
9
- if out and !out.is_a? IO
11
+ if out and !out.respond_to? :puts
10
12
  raise InvalidOutput
11
13
  end
12
14
  attempted = 0
@@ -16,7 +18,7 @@ module TryAgain
16
18
  yield
17
19
  rescue error => e
18
20
  attempted += 1
19
- out.puts "#{ error.to_s } for the #{attempts}# attempt" if out
21
+ out.puts "#{ error.to_s } for the #{tries}# attempt" if out
20
22
  if attempted < attempts
21
23
  sleep sleep
22
24
  retry
@@ -26,7 +28,7 @@ module TryAgain
26
28
  failed = true
27
29
  end
28
30
  if !failed and out
29
- out.puts "#{ error.to_s } took #{attempts + 1} attempts to pass"
31
+ out.puts "#{ error.to_s } took #{tries} attempts to pass"
30
32
  end
31
33
  return !failed
32
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: try_again
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arthur Silva
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-16 00:00:00.000000000 Z
11
+ date: 2016-05-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: " This method is usefull for when you want to attempt to get a resource
14
14
  on a network and it may fail \n\n Or maybe you know that there's a possibility
@@ -18,10 +18,11 @@ executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
- - lib/try_again.rb
22
21
  - README
22
+ - lib/try_again.rb
23
23
  homepage: https://github.com/awls99/Try-Again
24
- licenses: []
24
+ licenses:
25
+ - MIT
25
26
  metadata: {}
26
27
  post_install_message:
27
28
  rdoc_options: []
@@ -39,7 +40,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
39
40
  version: '0'
40
41
  requirements: []
41
42
  rubyforge_project:
42
- rubygems_version: 2.1.11
43
+ rubygems_version: 2.2.2
43
44
  signing_key:
44
45
  specification_version: 4
45
46
  summary: A helping method to to retry a block a few times with a sleep in between