Module: Miasma::Contrib::AwsApiCore::RequestUtils

Instance Method Summary collapse

Instance Method Details

#all_result_pages(next_token, *result_key) {|options| ... } ⇒ Array

Fetch all results when tokens are being used for paging results

Parameters:

  • next_token (String)
  • result_key (Array<String, Symbol>)

    path to result

Yields:

  • block to perform request

Yield Parameters:

  • options (Hash)

    request parameters (token information)

Returns:

  • (Array)


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/miasma/contrib/aws.rb', line 22

def all_result_pages(next_token, *result_key, &block)
  list = []
  options = next_token ? Smash.new('NextToken' => next_token) : Smash.new
  result = block.call(options)
  content = result.get(*result_key.dup)
  if(content.is_a?(Array))
    list += content
  else
    list << content
  end
  if(token = result.get(:body, 'NextToken'))
    list += all_result_pages(token, *result_key, &block)
  end
  list.compact
end