class Aws::RpcV2::Builder
Public Class Methods
Source
# File lib/aws-sdk-core/rpc_v2/builder.rb, line 10 def initialize(rules, _options = {}) @rules = rules end
Public Instance Methods
Source
# File lib/aws-sdk-core/rpc_v2/builder.rb, line 14 def serialize(params) # If the input shape is empty, do not set a body. This is # different than if the input shape is a structure with no members. return nil if @rules.shape.struct_class == EmptyStructure RpcV2.encode(format(@rules, params)) end
Private Instance Methods
Source
# File lib/aws-sdk-core/rpc_v2/builder.rb, line 47 def blob(value) (String === value ? value : value.read).force_encoding(Encoding::BINARY) end
Source
# File lib/aws-sdk-core/rpc_v2/builder.rb, line 51 def format(ref, value) case ref.shape when StructureShape then structure(ref, value) when ListShape then list(ref, value) when MapShape then map(ref, value) when BlobShape then blob(value) else value end end
Source
# File lib/aws-sdk-core/rpc_v2/builder.rb, line 35 def list(ref, values) member_ref = ref.shape.member values.collect { |value| format(member_ref, value) } end
Source
# File lib/aws-sdk-core/rpc_v2/builder.rb, line 40 def map(ref, values) value_ref = ref.shape.value values.each.with_object({}) do |(key, value), data| data[key] = format(value_ref, value) end end
Source
# File lib/aws-sdk-core/rpc_v2/builder.rb, line 24 def structure(ref, values) shape = ref.shape values.each_pair.with_object({}) do |(key, value), data| if shape.member?(key) && !value.nil? member_ref = shape.member(key) member_name = member_ref.location_name || key data[member_name] = format(member_ref, value) end end end