class Aws::Api::Docs::SharedExample

Public Class Methods

new(params, method_name, operation, comments) click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 9
def initialize(params, method_name, operation, comments)
  @params = params
  @method_name = method_name
  @operation = operation
  @comments = comments
end

Public Instance Methods

to_str_input() click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 16
def to_str_input
  lines = structure(@params, @operation.input, "", [])
  params = lines.join("\n")
  "resp = client.#{@method_name}(#{params})"
end
to_str_output() click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 22
def to_str_output
  lines = structure(@params, @operation.output, "", [])
  params = lines.join("\n")
  "#{params}"
end

Private Instance Methods

apply_comments(path) click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 87
def apply_comments(path)
  key = path.join().sub(/^\./, '')
  if @comments && @comments[key]
    "# #{@comments[key]}"
  else
    ""
  end
end
entry(json, ref, indent, path) click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 30
def entry(json, ref, indent, path)
  case ref.shape
  when StructureShape then structure(json, ref, indent, path)
  when MapShape then map(json, ref, indent, path)
  when ListShape then list(json, ref, indent, path)
  when TimestampShape then "Time.parse(#{json.inspect})"
  when StringShape, BlobShape then json.inspect
  else json
  end
end
list(json, ref, indent, path) click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 72
def list(json, ref, indent, path)
  lines = ["["]
  json.each_with_index do |member, index|
    path << "[#{index}]"
    shape_val = entry(member, ref.shape.member, "#{indent}  ", path)
    if shape_val.is_a?(Array)
      shape_val = shape_val.join("\n")
    end
    lines << "#{indent}  #{shape_val}, #{apply_comments(path)}"
    path.pop
  end
  lines << "#{indent}]"
  lines
end
map(json, ref, indent, path) click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 57
def map(json, ref, indent, path)
  lines = ["{"]
  json.each do |key, val|
    path << ".#{key}"
    shape_val = entry(val, ref.shape.value, "#{indent}  ", path)
    if shape_val.is_a?(Array)
      shape_val = shape_val.join("\n")
    end
    lines << "#{indent}  \"#{key}\" => #{shape_val}, #{apply_comments(path)}"
    path.pop
  end
  lines << "#{indent}}"
  lines
end
structure(json, ref, indent, path) click to toggle source
# File lib/aws-sdk-core/api/docs/shared_example.rb, line 41
def structure(json, ref, indent, path)
  lines = ["{"]
  json.each do |key, val|
    path << ".#{key}"
    sc_key = Seahorse::Util.underscore(key)
    shape_val = entry(val, ref.shape.member(sc_key), "#{indent}  ", path)
    if shape_val.is_a?(Array)
      shape_val = shape_val.join("\n")
    end
    lines << "#{indent}  #{sc_key}: #{shape_val}, #{apply_comments(path)}"
    path.pop
  end
  lines << "#{indent}}"
  lines
end