class Aws::DynamoDB::AttributeValue::Unmarshaler
Public Instance Methods
format(obj)
click to toggle source
# File lib/aws-sdk-core/dynamodb/attribute_value.rb, line 66 def format(obj) type, value = extract_type_and_value(obj) case type when :m value.each.with_object({}) do |(k, v), map| map[k] = format(v) end when :l then value.map { |v| format(v) } when :s then value when :n then BigDecimal.new(value) when :b then StringIO.new(value) when :null then nil when :bool then value when :ss then Set.new(value) when :ns then Set.new(value.map { |n| BigDecimal.new(n) }) when :bs then Set.new(value.map { |b| StringIO.new(b) }) else raise ArgumentError, "unhandled type #{type.inspect}" end end
Private Instance Methods
extract_type_and_value(obj)
click to toggle source
# File lib/aws-sdk-core/dynamodb/attribute_value.rb, line 89 def extract_type_and_value(obj) case obj when Hash then obj.to_a.first when Struct obj.members.each do |key| value = obj[key] return [key, value] unless value.nil? end else raise ArgumentError, "unhandled type #{obj.inspect}" end end