class Seahorse::Model::Shapes::Structure

def compute_member_names

def compute_member_names
  (definition['members'] || {}).each do |orig_name,ref|
    name = underscore(orig_name).to_sym
    if ref['location'] == 'headers'
      @member_refs[name] = ref
    else
      @member_refs[name] = { 'locationName' => orig_name }.merge(ref)
    end
    @member_names[orig_name] = name
  end
  @payload = @member_names[definition['payload']] if definition['payload']
end

def compute_required_member_names

def compute_required_member_names
  @required = (definition['required'] || []).map do |orig_name|
    @member_names[orig_name]
  end
end

def index_members_by_location_name

def index_members_by_location_name
  members.each.with_object({}) do |(name, shape), hash|
    hash[shape.location_name] = [name, shape]
  end
end

def initialize(definition, options = {})

def initialize(definition, options = {})
  super
  @members = {}
  @member_refs = {}
  @member_names = {}
  compute_member_names
  compute_required_member_names
  @member_names = @member_names.values
end

def member(name)

Returns:
  • (Shape) -

Parameters:
  • name (Symbol) --
def member(name)
  if ref = @member_refs[name.to_sym]
    @members[name] ||= shape_for(ref)
  else
    raise ArgumentError, "no such member :#{name}"
  end
end

def member?(name)

Returns:
  • (Boolean) - Returns `true` if this structure has a member with

Parameters:
  • name (Symbol) --
def member?(name)
  @member_refs.key?(name.to_sym)
end

def member_by_location_name(location_name)

Returns:
  • (Array, nil) -

Parameters:
  • location_name (String) --
def member_by_location_name(location_name)
  @by_location_name ||= index_members_by_location_name
  @by_location_name[location_name]
end

def members

Returns:
  • (Enumerable) - Returns an enumerator that yields
def members
  Enumerator.new do |y|
    member_names.map do |member_name|
      y.yield(member_name, member(member_name))
    end
  end
end

def payload_member

Returns:
  • (Shape, nil) -
def payload_member
  if payload
    @payload_member ||= member(payload)
  else
    nil
  end
end