class Aws::Query::ParamBuilder
def apply(shape, params)
-
(void)
-
Parameters:
-
params
(Hash
) -- -
shape
(Seahorse::Model::Shapes::Structure
) --
def apply(shape, params) structure(shape, params, '') end
def flat?(shape)
def flat?(shape) !!shape.metadata('flattened') end
def format(shape, value, prefix)
-
prefix
(String
) -- -
value
(Object
) -- -
shape
(Seahorse::Model::Shapes::Shape
) --
def format(shape, value, prefix) case shape.type when 'structure' then structure(shape, value, prefix + '.') when 'list' then list(shape, value, prefix) when 'map' then map(shape, value, prefix) when 'blob' then set(prefix, Base64.strict_encode64(value)) when 'timestamp' set(prefix, shape.format_time(value, 'iso8601').to_s) else set(prefix, value.to_s) end end
def initialize(param_list)
-
param_list
(ParamList
) --
def initialize(param_list) @params = param_list end
def list(list, values, prefix)
-
prefix
(String
) -- -
values
(Array
) -- -
list
(Seahorse::Model::Shapes::List
) --
def list(list, values, prefix) if values.empty? set(prefix, '') return end if flat?(list) if name = query_name(list.member) parts = prefix.split('.') parts.pop parts.push(name) prefix = parts.join('.') end else prefix += '.member' end values.each.with_index do |value, n| format(list.member, value, "#{prefix}.#{n+1}") end end
def map(map, values, prefix)
-
prefix
(String
) -- -
values
(Hash
) -- -
map
(Seahorse::Model::Shapes::Map
) --
def map(map, values, prefix) prefix += '.entry' unless flat?(map) key_name = "%s.%d.#{query_name(map.key, 'key')}" value_name = "%s.%d.#{query_name(map.value, 'value')}" values.each.with_index do |(key, value), n| format(map.key, key, key_name % [prefix, n + 1]) format(map.value, value, value_name % [prefix, n + 1]) end end
def query_name(shape, default = nil)
def query_name(shape, default = nil) shape.location_name || default end
def set(name, value)
def set(name, value) params.set(name, value) end
def structure(structure, values, prefix)
-
prefix
(String, nil
) -- -
values
(Hash
) -- -
structure
(Seahorse::Model::Shapes::Structure
) --
def structure(structure, values, prefix) values.each do |name, value| unless value.nil? member_shape = structure.member(name) format(member_shape, value, prefix + query_name(member_shape)) end end end