exp_retry 0.0.12 → 0.0.14

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: dcf20e1954c741739c256c324c0511bd503d470177bddea6e440954df9b8b0e3
4
- data.tar.gz: a698f18df11aea017d8a38c86c9840637008df8d0f94e7ac36cd50630a8eb3b1
3
+ metadata.gz: 1b9f68fbf37337a6969aa2805df08deb6c10d8b859647a184f8033811c7de848
4
+ data.tar.gz: 2263954dcb6c37ad927476bd6a09bcbfeb6d8655c395fbf4e2a74076d7ab3399
5
5
  SHA512:
6
- metadata.gz: 2e8d7f73a2a9e089035b92931f1a10da74223d37721ac5791f3e77e33845b120a1181203cb18d1aea5f906b1cf82322d8d743f1233f3cd7d97232bf7785de72b
7
- data.tar.gz: e1157a628e18cf70532756d65edeeb32c456160b6c6897a6c7c379dedea7f498bf45adcd27288dafdcff70f4cd5159ac6c6d45c9d7fb26788c87f0d3948e0168
6
+ metadata.gz: 7737de46de8b280fe380813398f356dcd832c56620b1736f9501200c08c5d2aefe87a30ca96d1c272bd9685a98730ffb1c1f709da2eee4282b007c45a4c30033
7
+ data.tar.gz: 3d7d128dbff9ad2d8e239c0fa6cd7b98dba3c2d959d1668be8962faf022c86b9f20c7f4b4a8aee16941c3edb8e46e116d6a222b0d58883a072f3c02688047d37
data/.travis.yml CHANGED
@@ -8,6 +8,8 @@ notifications:
8
8
  email:
9
9
  on_success: change
10
10
  on_failure: always
11
+ before_install:
12
+ - gem install bundler -v '< 2'
11
13
  before_script:
12
14
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
13
15
  - chmod +x ./cc-test-reporter
data/Gemfile.lock CHANGED
@@ -1,15 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- exp_retry (0.0.12)
4
+ exp_retry (0.0.14)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  diff-lcs (1.3)
10
10
  docile (1.3.1)
11
- json (2.1.0)
12
- rake (12.3.1)
11
+ json (2.3.1)
12
+ rake (12.3.3)
13
13
  rspec (3.8.0)
14
14
  rspec-core (~> 3.8.0)
15
15
  rspec-expectations (~> 3.8.0)
data/exp-retry.gemspec CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'exp_retry'
5
- s.version = '0.0.12'
6
- s.date = '2019-06-15'
5
+ s.version = '0.0.14'
6
+ s.date = '2023-03-13'
7
7
  s.summary = 'Exponential backoff retry'
8
8
  s.description = 'A simple exponential backoff retry wrapper.'
9
9
  s.homepage = 'http://rubygems.org/gems/exp_retry'
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.files = `git ls-files`.split("\n")
15
15
  s.test_files = `git ls-files -- spec/*`.split("\n")
16
16
 
17
- s.required_ruby_version = '~> 2.3'
17
+ s.required_ruby_version = '>= 2.3'
18
18
 
19
19
  s.add_development_dependency 'rake', '~> 12.2', '>= 12.2.1'
20
20
  s.add_development_dependency 'rspec', '~> 3.7', '>= 3.7.0'
data/lib/exp_retry.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Exponential backoff retry wrapper
4
4
  class ExpRetry
5
5
  attr_accessor :retries
6
- attr_reader :exception
6
+ attr_reader :exception, :tried
7
7
 
8
8
  def self.for(retries: 3, exception: StandardError, verbose: false)
9
9
  new(retries: retries, exception: exception, verbose: verbose).call { yield }
@@ -11,6 +11,7 @@ class ExpRetry
11
11
 
12
12
  def initialize(retries: 3, exception: StandardError, wait: 1000, verbose: false)
13
13
  @retries = retries
14
+ @tried = 0
14
15
  @exception = exception
15
16
  @verbose = verbose
16
17
  @wait = wait
@@ -26,14 +27,14 @@ class ExpRetry
26
27
  private
27
28
 
28
29
  def check(exception)
29
- raise(exception) unless retries.positive?
30
+ raise(exception) if tried >= retries
30
31
 
31
- decrement
32
+ increment
32
33
  delay
33
34
  end
34
35
 
35
- def decrement
36
- @retries -= 1
36
+ def increment
37
+ @tried += 1
37
38
  end
38
39
 
39
40
  def delay
@@ -43,6 +44,6 @@ private
43
44
  end
44
45
 
45
46
  def time
46
- 2**retries * (@wait.to_f / 1000)
47
+ 2**tried * (@wait.to_f / 1000)
47
48
  end
48
49
  end
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  RSpec.describe ExpRetry do
6
- let(:wait) { 10 }
6
+ let(:wait) { 50 }
7
7
 
8
8
  it 'allows normal execution' do
9
9
  r = described_class.new.call { 'Something' }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exp_retry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Fiander
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-15 00:00:00.000000000 Z
11
+ date: 2023-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -100,7 +100,7 @@ require_paths:
100
100
  - doc
101
101
  required_ruby_version: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - "~>"
103
+ - - ">="
104
104
  - !ruby/object:Gem::Version
105
105
  version: '2.3'
106
106
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -109,8 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 2.7.6
112
+ rubygems_version: 3.1.6
114
113
  signing_key:
115
114
  specification_version: 4
116
115
  summary: Exponential backoff retry