class Aws::Pager

@api private

def empty_value?(value)

def empty_value?(value)
  value.nil? || value == '' || value == [] || value == {}
end

def initialize(rules)

def initialize(rules)
  @more_results = rules['more_results']
  @more_results = underscore(@more_results) if @more_results
  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 = JMESPath.search(source, response.data)
    next_tokens[target.to_sym] = value unless empty_value?(value)
  end
end

def prev_tokens(response)

Other tags:
    Api: - private
def prev_tokens(response)
  @tokens.each.with_object({}) do |(_, target), tokens|
    value = JMESPath.search(target, response.context.params)
    tokens[target.to_sym] = value unless empty_value?(value)
  end
end

def truncated?(response)

Returns:
  • (Boolean) -

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

def underscore(str)

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