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 11
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 17
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 68
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 44
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(ref, 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 33
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 56
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 60
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 23
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(ref, value) click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 73
def timestamp(ref, value)
  case ref['timestampFormat'] || ref.shape['timestampFormat']
  when 'unixTimestamp' then value.to_i
  when 'rfc822' then value.utc.httpdate
  else
    # ec2 defaults to iso8601
    value.utc.iso8601
  end
end
ucfirst(str) click to toggle source
# File lib/aws-sdk-core/query/ec2_param_builder.rb, line 64
def ucfirst(str)
  str[0].upcase + str[1..-1]
end