class Aws::Stubbing::DataApplicator

Public Class Methods

new(rules) click to toggle source

@param [Seahorse::Models::Shapes::ShapeRef] rules

# File lib/aws-sdk-core/stubbing/data_applicator.rb, line 8
def initialize(rules)
  @rules = rules
end

Public Instance Methods

apply_data(data, stub) click to toggle source

@param [Hash] data @param [Structure] stub

# File lib/aws-sdk-core/stubbing/data_applicator.rb, line 14
def apply_data(data, stub)
  apply_data_to_struct(@rules, data, stub)
end

Private Instance Methods

apply_data_to_struct(ref, data, struct) click to toggle source
# File lib/aws-sdk-core/stubbing/data_applicator.rb, line 20
def apply_data_to_struct(ref, data, struct)
  data.each do |key, value|
    struct[key] = member_value(ref.shape.member(key), value)
  end
  struct
end
member_value(ref, value) click to toggle source
# File lib/aws-sdk-core/stubbing/data_applicator.rb, line 27
def member_value(ref, value)
  case ref.shape
  when StructureShape
    apply_data_to_struct(ref, value, ref[:struct_class].new)
  when ListShape
    value.inject([]) do |list, v|
      list << member_value(ref.shape.member, v)
    end
  when MapShape
    value.inject({}) do |map, (k,v)|
      map[k.to_s] = member_value(ref.shape.value, v)
      map
    end
  else
    value
  end
end