class Aws::Plugins::DynamoDBSimpleAttributes::ValueTranslator
@api private
Public Class Methods
apply(rules, mode, data)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 142 def self.apply(rules, mode, data) new(rules, mode).apply(data) end
new(rules, mode)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 146 def initialize(rules, mode) @rules = rules @mode = mode end
Public Instance Methods
apply(values)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 151 def apply(values) structure(@rules, values) if @rules end
Private Instance Methods
list(ref, values)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 173 def list(ref, values) return values unless values.is_a?(Array) member_ref = ref.shape.member values.inject([]) do |list, value| list << translate(member_ref, value) end end
map(ref, values)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 181 def map(ref, values) return values unless values.is_a?(Hash) value_ref = ref.shape.value values.each.with_object({}) do |(key, value), hash| hash[key] = translate(value_ref, value) end end
structure(ref, values)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 157 def structure(ref, values) shape = ref.shape if values.is_a?(Struct) values.members.each do |key| values[key] = translate(shape.member(key), values[key]) end values elsif values.is_a?(Hash) values.each.with_object({}) do |(key, value), hash| hash[key] = translate(shape.member(key), value) end else values end end
translate(ref, value)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 189 def translate(ref, value) if ref.shape.name == 'AttributeValue' DynamoDB::AttributeValue.new.send(@mode, value) else translate_complex(ref, value) end end
translate_complex(ref, value)
click to toggle source
# File lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb, line 197 def translate_complex(ref, value) case ref.shape when StructureShape then structure(ref, value) when ListShape then list(ref, value) when MapShape then map(ref, value) else value end end