class Aws::Json::Builder
Public Instance Methods
to_json(shape, params)
click to toggle source
@param [Seahorse::Model::Shapes::Shape] shape @param [Hash] params @return [String<JSON>]
# File lib/aws-sdk-core/json/builder.rb, line 10 def to_json(shape, params) MultiJson.dump(format(shape, params)) end
Private Instance Methods
format(shape, value)
click to toggle source
@param [Seahorse::Model::Shapes::Shape] shape @param [Object] value @return [Object]
# File lib/aws-sdk-core/json/builder.rb, line 48 def format(shape, value) case shape.type when 'structure' then structure(shape, value) when 'list' then list(shape, value) when 'map' then map(shape, value) when 'timestamp' then shape.format_time(value, 'unixTimestamp') when 'blob' then Base64.strict_encode64(value.read) else value end end
list(list, values)
click to toggle source
@param [Seahorse::Model::Shapes::List] list @param [Array] values @return [Array]
# File lib/aws-sdk-core/json/builder.rb, line 32 def list(list, values) values.collect { |value| format(list.member, value) } end
map(map, values)
click to toggle source
@param [Seahorse::Model::Shapes::Map] map @param [Hash] values @return [Hash]
# File lib/aws-sdk-core/json/builder.rb, line 39 def map(map, values) values.each.with_object({}) do |(key, value), data| data[key] = format(map.value, value) end end
structure(structure, values)
click to toggle source
@param [Seahorse::Model::Shapes::Structure] structure @param [Hash] values @return [Hash]
# File lib/aws-sdk-core/json/builder.rb, line 19 def structure(structure, values) values.each.with_object({}) do |(key, value), data| if structure.member?(key) && !value.nil? member_shape = structure.member(key) name = member_shape.location_name || key data[name] = format(member_shape, value) end end end