class Aws::Query::EC2ParamBuilder
Attributes
params[R]
Public Class Methods
new(param_list)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 9 def initialize(param_list) @params = param_list end
Public Instance Methods
apply(ref, params)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 15 def apply(ref, params) structure(ref, params, '') end
Private Instance Methods
blob(value)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 66 def blob(value) value = value.read unless String === value Base64.strict_encode64(value) end
format(ref, value, prefix)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 42 def format(ref, value, prefix) case ref.shape when StructureShape then structure(ref, value, prefix + '.') when ListShape then list(ref, value, prefix) when MapShape then raise NotImplementedError when BlobShape then set(prefix, blob(value)) when TimestampShape then set(prefix, timestamp(value)) else set(prefix, value.to_s) end end
list(ref, values, prefix)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 31 def list(ref, values, prefix) if values.empty? set(prefix, '') else member_ref = ref.shape.member values.each.with_index do |value, n| format(member_ref, value, "#{prefix}.#{n+1}") end end end
query_name(ref)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 54 def query_name(ref) ref['queryName'] || ucfirst(ref.location_name) end
set(name, value)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 58 def set(name, value) params.set(name, value) end
structure(ref, values, prefix)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 21 def structure(ref, values, prefix) shape = ref.shape values.each_pair do |name, value| unless value.nil? member_ref = shape.member(name) format(member_ref, value, prefix + query_name(member_ref)) end end end
timestamp(value)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 71 def timestamp(value) value.utc.iso8601 end
ucfirst(str)
click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 62 def ucfirst(str) str[0].upcase + str[1..-1] end