retryable 1.2.2 → 1.2.3
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.
- data/README.markdown +14 -4
- data/lib/retryable.rb +14 -13
- metadata +21 -89
- data/.travis.yml +0 -4
- data/Gemfile +0 -4
- data/Rakefile +0 -44
- data/VERSION +0 -1
- data/retryable.gemspec +0 -62
- data/spec/lib/retryable_spec.rb +0 -53
- data/spec/spec_helper.rb +0 -9
    
        data/README.markdown
    CHANGED
    
    | @@ -9,7 +9,7 @@ Description | |
| 9 9 | 
             
            Runs a code block, and retries it when an exception occurs. It's great when
         | 
| 10 10 | 
             
            working with flakey webservices (for example).
         | 
| 11 11 |  | 
| 12 | 
            -
            It's configured using  | 
| 12 | 
            +
            It's configured using three optional parameters --`:tries`, `:on`, `:sleep` --, and
         | 
| 13 13 | 
             
            runs the passed block. Should an exception occur, it'll retry for (n-1) times.
         | 
| 14 14 |  | 
| 15 15 | 
             
            Should the number of retries be reached without success, the last exception
         | 
| @@ -43,8 +43,17 @@ end | |
| 43 43 |  | 
| 44 44 | 
             
            ## Defaults
         | 
| 45 45 |  | 
| 46 | 
            -
                :tries =>  | 
| 47 | 
            -
             | 
| 46 | 
            +
                :tries => 2, :on => Exception, :sleep => 1
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            Sleeping
         | 
| 49 | 
            +
            --------
         | 
| 50 | 
            +
            By default Retryable waits for one second between retries. You can change this and even provide your own exponential backoff scheme.
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            ```
         | 
| 53 | 
            +
            retryable(:sleep => 0) { }                # don't pause at all between retries
         | 
| 54 | 
            +
            retryable(:sleep => 10) { }               # sleep ten seconds between retries
         | 
| 55 | 
            +
            retryable(:sleep => lambda { |n| 4**n }) { }   # sleep 1, 4, 16, etc. each try
         | 
| 56 | 
            +
            ```    
         | 
| 48 57 |  | 
| 49 58 | 
             
            Installation
         | 
| 50 59 | 
             
            -------
         | 
| @@ -52,7 +61,7 @@ Installation | |
| 52 61 | 
             
            Install the gem:
         | 
| 53 62 |  | 
| 54 63 | 
             
            ``` bash
         | 
| 55 | 
            -
            $ gem install retryable
         | 
| 64 | 
            +
            $ gem install retryable --force
         | 
| 56 65 | 
             
            ```
         | 
| 57 66 |  | 
| 58 67 | 
             
            Add it to your Gemfile:
         | 
| @@ -64,6 +73,7 @@ gem 'retryable' | |
| 64 73 |  | 
| 65 74 | 
             
            ## Changelog
         | 
| 66 75 |  | 
| 76 | 
            +
            *  v1.4.0: :sleep option added
         | 
| 67 77 | 
             
            *  v1.3: stability -- Thoroughly unit-tested
         | 
| 68 78 | 
             
            *  v1.2: FIX -- block would run twice when `:tries` was set to `0`. (Thanks for the heads-up to [Tuker](http://github.com/tuker).)
         | 
| 69 79 |  | 
    
        data/lib/retryable.rb
    CHANGED
    
    | @@ -1,19 +1,20 @@ | |
| 1 | 
            -
            # Code originally by Chu Yeow, see 
         | 
| 2 | 
            -
            # http://blog.codefront.net/2008/01/14/retrying-code-blocks-in-ruby-on-exceptions-whatever/
         | 
| 3 | 
            -
            # Slightly rewritten to allow for passing of more than just type of exception.
         | 
| 4 1 |  | 
| 5 | 
            -
             | 
| 6 | 
            -
               | 
| 2 | 
            +
            module Kernel
         | 
| 3 | 
            +
              def retryable(options = {}, &block)
         | 
| 4 | 
            +
                opts = { :tries => 2, :sleep => 1, :on => Exception }.merge(options)
         | 
| 7 5 |  | 
| 8 | 
            -
             | 
| 6 | 
            +
                return nil if opts[:tries] == 0
         | 
| 9 7 |  | 
| 10 | 
            -
             | 
| 8 | 
            +
                retry_exception, tries = [ opts[:on] ].flatten, opts[:tries]
         | 
| 9 | 
            +
                retries = 0
         | 
| 11 10 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 11 | 
            +
                begin
         | 
| 12 | 
            +
                  return yield retries
         | 
| 13 | 
            +
                rescue *retry_exception
         | 
| 14 | 
            +
                  raise if retries+1 >= opts[:tries]
         | 
| 15 | 
            +
                  sleep opts[:sleep].respond_to?(:call) ? opts[:sleep].call(retries) : opts[:sleep]
         | 
| 16 | 
            +
                  retries += 1
         | 
| 17 | 
            +
                  retry
         | 
| 18 | 
            +
                end
         | 
| 16 19 | 
             
              end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
              yield
         | 
| 19 20 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: retryable
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 25
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 1
         | 
| 8 8 | 
             
              - 2
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 1.2. | 
| 9 | 
            +
              - 3
         | 
| 10 | 
            +
              version: 1.2.3
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Nikita Fedyashev
         | 
| @@ -17,57 +17,12 @@ autorequire: | |
| 17 17 | 
             
            bindir: bin
         | 
| 18 18 | 
             
            cert_chain: []
         | 
| 19 19 |  | 
| 20 | 
            -
            date: 2011-05- | 
| 20 | 
            +
            date: 2011-05-16 00:00:00 Z
         | 
| 21 21 | 
             
            dependencies: 
         | 
| 22 22 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 23 | 
            -
               | 
| 24 | 
            -
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 25 | 
            -
                none: false
         | 
| 26 | 
            -
                requirements: 
         | 
| 27 | 
            -
                - - ">="
         | 
| 28 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 29 | 
            -
                    hash: 3
         | 
| 30 | 
            -
                    segments: 
         | 
| 31 | 
            -
                    - 0
         | 
| 32 | 
            -
                    version: "0"
         | 
| 33 | 
            -
              version_requirements: *id001
         | 
| 34 | 
            -
              name: retryable
         | 
| 35 | 
            -
              prerelease: false
         | 
| 36 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 37 | 
            -
              type: :development
         | 
| 38 | 
            -
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 39 | 
            -
                none: false
         | 
| 40 | 
            -
                requirements: 
         | 
| 41 | 
            -
                - - ~>
         | 
| 42 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 43 | 
            -
                    hash: 15
         | 
| 44 | 
            -
                    segments: 
         | 
| 45 | 
            -
                    - 1
         | 
| 46 | 
            -
                    - 6
         | 
| 47 | 
            -
                    - 0
         | 
| 48 | 
            -
                    version: 1.6.0
         | 
| 49 | 
            -
              version_requirements: *id002
         | 
| 50 | 
            -
              name: jeweler
         | 
| 51 | 
            -
              prerelease: false
         | 
| 52 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 53 | 
            -
              type: :development
         | 
| 54 | 
            -
              requirement: &id003 !ruby/object:Gem::Requirement 
         | 
| 55 | 
            -
                none: false
         | 
| 56 | 
            -
                requirements: 
         | 
| 57 | 
            -
                - - ">="
         | 
| 58 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 59 | 
            -
                    hash: 23
         | 
| 60 | 
            -
                    segments: 
         | 
| 61 | 
            -
                    - 1
         | 
| 62 | 
            -
                    - 0
         | 
| 63 | 
            -
                    - 0
         | 
| 64 | 
            -
                    version: 1.0.0
         | 
| 65 | 
            -
              version_requirements: *id003
         | 
| 66 | 
            -
              name: bundler
         | 
| 23 | 
            +
              name: rspec
         | 
| 67 24 | 
             
              prerelease: false
         | 
| 68 | 
            -
             | 
| 69 | 
            -
              type: :development
         | 
| 70 | 
            -
              requirement: &id004 !ruby/object:Gem::Requirement 
         | 
| 25 | 
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 71 26 | 
             
                none: false
         | 
| 72 27 | 
             
                requirements: 
         | 
| 73 28 | 
             
                - - ~>
         | 
| @@ -78,41 +33,22 @@ dependencies: | |
| 78 33 | 
             
                    - 5
         | 
| 79 34 | 
             
                    - 0
         | 
| 80 35 | 
             
                    version: 2.5.0
         | 
| 81 | 
            -
              version_requirements: *id004
         | 
| 82 | 
            -
              name: rspec
         | 
| 83 | 
            -
              prerelease: false
         | 
| 84 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 85 36 | 
             
              type: :development
         | 
| 86 | 
            -
               | 
| 87 | 
            -
             | 
| 88 | 
            -
                requirements: 
         | 
| 89 | 
            -
                - - ">="
         | 
| 90 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 91 | 
            -
                    hash: 23
         | 
| 92 | 
            -
                    segments: 
         | 
| 93 | 
            -
                    - 1
         | 
| 94 | 
            -
                    - 0
         | 
| 95 | 
            -
                    - 0
         | 
| 96 | 
            -
                    version: 1.0.0
         | 
| 97 | 
            -
              version_requirements: *id005
         | 
| 37 | 
            +
              version_requirements: *id001
         | 
| 38 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 98 39 | 
             
              name: bundler
         | 
| 99 40 | 
             
              prerelease: false
         | 
| 100 | 
            -
             | 
| 101 | 
            -
              type: :development
         | 
| 102 | 
            -
              requirement: &id006 !ruby/object:Gem::Requirement 
         | 
| 41 | 
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 103 42 | 
             
                none: false
         | 
| 104 43 | 
             
                requirements: 
         | 
| 105 | 
            -
                - -  | 
| 44 | 
            +
                - - ">="
         | 
| 106 45 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 107 | 
            -
                    hash:  | 
| 46 | 
            +
                    hash: 3
         | 
| 108 47 | 
             
                    segments: 
         | 
| 109 | 
            -
                    - 2
         | 
| 110 | 
            -
                    - 5
         | 
| 111 48 | 
             
                    - 0
         | 
| 112 | 
            -
                    version:  | 
| 113 | 
            -
               | 
| 114 | 
            -
               | 
| 115 | 
            -
              prerelease: false
         | 
| 49 | 
            +
                    version: "0"
         | 
| 50 | 
            +
              type: :development
         | 
| 51 | 
            +
              version_requirements: *id002
         | 
| 116 52 | 
             
            description: Kernel#retryable, allow for retrying of code blocks.
         | 
| 117 53 | 
             
            email: loci.master@gmail.com
         | 
| 118 54 | 
             
            executables: []
         | 
| @@ -122,15 +58,8 @@ extensions: [] | |
| 122 58 | 
             
            extra_rdoc_files: 
         | 
| 123 59 | 
             
            - README.markdown
         | 
| 124 60 | 
             
            files: 
         | 
| 125 | 
            -
            - .travis.yml
         | 
| 126 | 
            -
            - Gemfile
         | 
| 127 | 
            -
            - README.markdown
         | 
| 128 | 
            -
            - Rakefile
         | 
| 129 | 
            -
            - VERSION
         | 
| 130 61 | 
             
            - lib/retryable.rb
         | 
| 131 | 
            -
            -  | 
| 132 | 
            -
            - spec/lib/retryable_spec.rb
         | 
| 133 | 
            -
            - spec/spec_helper.rb
         | 
| 62 | 
            +
            - README.markdown
         | 
| 134 63 | 
             
            homepage: http://github.com/nfedyashev/retryable
         | 
| 135 64 | 
             
            licenses: 
         | 
| 136 65 | 
             
            - MIT
         | 
| @@ -153,10 +82,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 153 82 | 
             
              requirements: 
         | 
| 154 83 | 
             
              - - ">="
         | 
| 155 84 | 
             
                - !ruby/object:Gem::Version 
         | 
| 156 | 
            -
                  hash:  | 
| 85 | 
            +
                  hash: 23
         | 
| 157 86 | 
             
                  segments: 
         | 
| 158 | 
            -
                  -  | 
| 159 | 
            -
                   | 
| 87 | 
            +
                  - 1
         | 
| 88 | 
            +
                  - 3
         | 
| 89 | 
            +
                  - 6
         | 
| 90 | 
            +
                  version: 1.3.6
         | 
| 160 91 | 
             
            requirements: []
         | 
| 161 92 |  | 
| 162 93 | 
             
            rubyforge_project: 
         | 
| @@ -166,3 +97,4 @@ specification_version: 3 | |
| 166 97 | 
             
            summary: Kernel#retryable, allow for retrying of code blocks.
         | 
| 167 98 | 
             
            test_files: []
         | 
| 168 99 |  | 
| 100 | 
            +
            has_rdoc: 
         | 
    
        data/.travis.yml
    DELETED
    
    
    
        data/Gemfile
    DELETED
    
    
    
        data/Rakefile
    DELETED
    
    | @@ -1,44 +0,0 @@ | |
| 1 | 
            -
            # encoding: utf-8
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            require 'rubygems'
         | 
| 4 | 
            -
            require 'bundler'
         | 
| 5 | 
            -
            begin
         | 
| 6 | 
            -
              Bundler.setup(:default, :development)
         | 
| 7 | 
            -
            rescue Bundler::BundlerError => e
         | 
| 8 | 
            -
              $stderr.puts e.message
         | 
| 9 | 
            -
              $stderr.puts "Run `bundle install` to install missing gems"
         | 
| 10 | 
            -
              exit e.status_code
         | 
| 11 | 
            -
            end
         | 
| 12 | 
            -
            require 'rake'
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            require 'jeweler'
         | 
| 15 | 
            -
            Jeweler::Tasks.new do |gem|
         | 
| 16 | 
            -
              gem.name = "retryable"
         | 
| 17 | 
            -
              gem.homepage = "http://github.com/nfedyashev/retryable"
         | 
| 18 | 
            -
              gem.license = "MIT"
         | 
| 19 | 
            -
              gem.summary = %Q{Kernel#retryable, allow for retrying of code blocks.}
         | 
| 20 | 
            -
              gem.description = %Q{Kernel#retryable, allow for retrying of code blocks.}
         | 
| 21 | 
            -
              gem.email = "loci.master@gmail.com"
         | 
| 22 | 
            -
              gem.authors = ["Nikita Fedyashev", "Carlo Zottmann", "Chu Yeow"]
         | 
| 23 | 
            -
             | 
| 24 | 
            -
              gem.add_development_dependency 'bundler', ['>= 1.0.0']
         | 
| 25 | 
            -
              gem.add_development_dependency 'rspec', '~> 2.5.0'
         | 
| 26 | 
            -
             | 
| 27 | 
            -
            end
         | 
| 28 | 
            -
            Jeweler::RubygemsDotOrgTasks.new
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            require 'rspec/core'
         | 
| 31 | 
            -
            require 'rspec/core/rake_task'
         | 
| 32 | 
            -
            RSpec::Core::RakeTask.new(:spec)
         | 
| 33 | 
            -
             | 
| 34 | 
            -
            task :default => :spec
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            require 'rake/rdoctask'
         | 
| 37 | 
            -
            Rake::RDocTask.new do |rdoc|
         | 
| 38 | 
            -
              version = File.exist?('VERSION') ? File.read('VERSION') : ""
         | 
| 39 | 
            -
             | 
| 40 | 
            -
              rdoc.rdoc_dir = 'rdoc'
         | 
| 41 | 
            -
              rdoc.title = "retryable #{version}"
         | 
| 42 | 
            -
              rdoc.rdoc_files.include('README*')
         | 
| 43 | 
            -
              rdoc.rdoc_files.include('lib/**/*.rb')
         | 
| 44 | 
            -
            end
         | 
    
        data/VERSION
    DELETED
    
    | @@ -1 +0,0 @@ | |
| 1 | 
            -
            1.2.2
         | 
    
        data/retryable.gemspec
    DELETED
    
    | @@ -1,62 +0,0 @@ | |
| 1 | 
            -
            # Generated by jeweler
         | 
| 2 | 
            -
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 | 
            -
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         | 
| 4 | 
            -
            # -*- encoding: utf-8 -*-
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            Gem::Specification.new do |s|
         | 
| 7 | 
            -
              s.name = %q{retryable}
         | 
| 8 | 
            -
              s.version = "1.2.2"
         | 
| 9 | 
            -
             | 
| 10 | 
            -
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 | 
            -
              s.authors = ["Nikita Fedyashev", "Carlo Zottmann", "Chu Yeow"]
         | 
| 12 | 
            -
              s.date = %q{2011-05-10}
         | 
| 13 | 
            -
              s.description = %q{Kernel#retryable, allow for retrying of code blocks.}
         | 
| 14 | 
            -
              s.email = %q{loci.master@gmail.com}
         | 
| 15 | 
            -
              s.extra_rdoc_files = [
         | 
| 16 | 
            -
                "README.markdown"
         | 
| 17 | 
            -
              ]
         | 
| 18 | 
            -
              s.files = [
         | 
| 19 | 
            -
                ".travis.yml",
         | 
| 20 | 
            -
                "Gemfile",
         | 
| 21 | 
            -
                "README.markdown",
         | 
| 22 | 
            -
                "Rakefile",
         | 
| 23 | 
            -
                "VERSION",
         | 
| 24 | 
            -
                "lib/retryable.rb",
         | 
| 25 | 
            -
                "retryable.gemspec",
         | 
| 26 | 
            -
                "spec/lib/retryable_spec.rb",
         | 
| 27 | 
            -
                "spec/spec_helper.rb"
         | 
| 28 | 
            -
              ]
         | 
| 29 | 
            -
              s.homepage = %q{http://github.com/nfedyashev/retryable}
         | 
| 30 | 
            -
              s.licenses = ["MIT"]
         | 
| 31 | 
            -
              s.require_paths = ["lib"]
         | 
| 32 | 
            -
              s.rubygems_version = %q{1.7.1}
         | 
| 33 | 
            -
              s.summary = %q{Kernel#retryable, allow for retrying of code blocks.}
         | 
| 34 | 
            -
             | 
| 35 | 
            -
              if s.respond_to? :specification_version then
         | 
| 36 | 
            -
                s.specification_version = 3
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         | 
| 39 | 
            -
                  s.add_runtime_dependency(%q<retryable>, [">= 0"])
         | 
| 40 | 
            -
                  s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
         | 
| 41 | 
            -
                  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| 42 | 
            -
                  s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
         | 
| 43 | 
            -
                  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| 44 | 
            -
                  s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
         | 
| 45 | 
            -
                else
         | 
| 46 | 
            -
                  s.add_dependency(%q<retryable>, [">= 0"])
         | 
| 47 | 
            -
                  s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
         | 
| 48 | 
            -
                  s.add_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| 49 | 
            -
                  s.add_dependency(%q<rspec>, ["~> 2.5.0"])
         | 
| 50 | 
            -
                  s.add_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| 51 | 
            -
                  s.add_dependency(%q<rspec>, ["~> 2.5.0"])
         | 
| 52 | 
            -
                end
         | 
| 53 | 
            -
              else
         | 
| 54 | 
            -
                s.add_dependency(%q<retryable>, [">= 0"])
         | 
| 55 | 
            -
                s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
         | 
| 56 | 
            -
                s.add_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| 57 | 
            -
                s.add_dependency(%q<rspec>, ["~> 2.5.0"])
         | 
| 58 | 
            -
                s.add_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| 59 | 
            -
                s.add_dependency(%q<rspec>, ["~> 2.5.0"])
         | 
| 60 | 
            -
              end
         | 
| 61 | 
            -
            end
         | 
| 62 | 
            -
             | 
    
        data/spec/lib/retryable_spec.rb
    DELETED
    
    | @@ -1,53 +0,0 @@ | |
| 1 | 
            -
            require 'spec_helper'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            describe 'retryable' do
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              before(:each) do
         | 
| 6 | 
            -
                @attempt = 0
         | 
| 7 | 
            -
              end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
              it "should make another try on exception" do
         | 
| 10 | 
            -
                retryable(:tries => 1, :on => RuntimeError) do
         | 
| 11 | 
            -
                  @attempt = @attempt + 1
         | 
| 12 | 
            -
                  raise RuntimeError unless @attempt == 2
         | 
| 13 | 
            -
                end
         | 
| 14 | 
            -
              end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              it "should make another try if exception is in whitelist" do
         | 
| 17 | 
            -
                retryable(:tries => 1, :on => [StandardError, ArgumentError, RuntimeError]) do
         | 
| 18 | 
            -
                  @attempt = @attempt + 1
         | 
| 19 | 
            -
                  raise ArgumentError unless @attempt == 2
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
              it "should not try on unexpected exception" do
         | 
| 24 | 
            -
                lambda do
         | 
| 25 | 
            -
                  retryable(:tries => 1, :on => RuntimeError) do
         | 
| 26 | 
            -
                    @attempt = @attempt + 1
         | 
| 27 | 
            -
                    raise StandardError unless @attempt == 2
         | 
| 28 | 
            -
                  end
         | 
| 29 | 
            -
                end.should raise_error StandardError
         | 
| 30 | 
            -
              end
         | 
| 31 | 
            -
             | 
| 32 | 
            -
              it "should make always retry on default exception" do
         | 
| 33 | 
            -
                retryable(:tries => 1) do
         | 
| 34 | 
            -
                  @attempt = @attempt + 1
         | 
| 35 | 
            -
                  raise StandardError unless @attempt == 2
         | 
| 36 | 
            -
                end
         | 
| 37 | 
            -
              end
         | 
| 38 | 
            -
             | 
| 39 | 
            -
              it "should retry once unless :tries explicitly set" do
         | 
| 40 | 
            -
                retryable do
         | 
| 41 | 
            -
                  @attempt = @attempt + 1
         | 
| 42 | 
            -
                  raise StandardError unless @attempt == 2
         | 
| 43 | 
            -
                end
         | 
| 44 | 
            -
              end
         | 
| 45 | 
            -
             | 
| 46 | 
            -
              it "should retry twice" do
         | 
| 47 | 
            -
                retryable(:tries => 2, :on => RuntimeError) do
         | 
| 48 | 
            -
                  @attempt = @attempt + 1
         | 
| 49 | 
            -
                  raise RuntimeError unless @attempt == 3
         | 
| 50 | 
            -
                end
         | 
| 51 | 
            -
              end
         | 
| 52 | 
            -
             | 
| 53 | 
            -
            end
         | 
    
        data/spec/spec_helper.rb
    DELETED