Module: RubyBareEsiGetPages::GetPageRetryOnError

Included in:
RubyBareEsi
Defined in:
lib/get_pages/get_page_retry_on_error.rb

Instance Method Summary collapse

Instance Method Details

#get_page_retry_on_error(page_number = nil) ⇒ Hash

Get a single page. Doesn’t check for remaining pages, in case of error retry according to Error class retry parameters.

Parameters:

  • page_number (Int) (defaults to: nil)

    the number of the pages you are requesting, if there are more pages you need to get (default the first).

Returns:

  • (Hash)

    a hash containing the data you are requested. For data content see API.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/get_pages/get_page_retry_on_error.rb', line 9

def get_page_retry_on_error( page_number=nil )
  parsed_result = nil
  retry_count = 0

  loop do
    begin
      parsed_result = get_page( page_number )
      break

    rescue EsiErrors::Base => error
      puts "RubyBareEsiGetPages::GetPageRetryOnError.get_page_retry_on_error : retry = #{error.retry?}" if @debug_mode

      if error.retry?

        retry_count += 1
        if retry_count >= 20
          raise 'Retry count exceeded.'
        end

        error.pause( test_mode: @test_mode )
        next
      else
        raise error
      end
    end
  end

  parsed_result
end