class Aws::Paging::Pager

def initialize(rules)

def initialize(rules)
  if rules['more_results']
    @more_results = underscore(rules['more_results'])
  end
  if rules['limit_key']
    @limit_key = underscore(rules['limit_key']).to_sym
  end
  map_tokens(rules)
end

def map_tokens(rules)

def map_tokens(rules)
  input = Array(rules['input_token'])
  output = Array(rules['output_token'])
  @tokens = {}
  input.each.with_index do |key, n|
    @tokens[underscore(output[n])] = underscore(key)
  end
end

def next_tokens(response)

Returns:
  • (Hash) -

Parameters:
  • response (Seahorse::Client::Response) --
def next_tokens(response)
  @tokens.each.with_object({}) do |(source, target), next_tokens|
    value = Jamespath.search(source, response.data)
    next_tokens[target.to_sym] = value unless value.nil?
  end
end

def truncated?(response)

Returns:
  • (Boolean) -

Parameters:
  • response (Seahorse::Client::Response) --
def truncated?(response)
  if @more_results
    Jamespath.search(@more_results, response.data)
  else
    !next_tokens(response).empty?
  end
end

def underscore(str)

def underscore(str)
  str.
    gsub(' or ', '||').
    gsub(/\w+/) { |part| Seahorse::Util.underscore(part) }
end