Module: RubyBareEsiGetPages::GetAllPages

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

Instance Method Summary collapse

Instance Method Details

#get_all_pages(expect: nil) ⇒ Hash

Get a single page. Doesn’t check for remaining pages, in case of error fail.

Parameters:

  • expect (String) (defaults to: nil)

    used only for tests.

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
38
39
40
41
# File 'lib/get_pages/get_all_pages.rb', line 9

def get_all_pages( expect: nil )
  result = []
  @params[:page] = 1

  loop do
    puts "RubyBareEsi.get_all_pages : requesting page #{@params[:page]}/#{@pages_count}" if @debug_mode

    pages = get_page

    unless pages.empty?
      result += pages if pages.is_a? Array
      result << pages if pages.is_a? Hash
    else
      puts 'RubyBareEsi.get_all_pages : page is empty' if @debug_mode
    end

    if @pages_count == 0 || @pages_count == 1
      puts 'RubyBareEsi.get_all_pages : no other pages to download - breaking out' if @debug_mode
      break
    else
      puts "RubyBareEsi.get_all_pages : More pages to download : #{@pages_count}" if @debug_mode
      @params[:page] += 1
    end

    if @params[:page] && @params[:page] > @pages_count
      puts 'RubyBareEsi.get_all_pages : No more pages to download - breaking out' if @debug_mode
      @params.delete(:page)
      break
    end
  end

  result
end