class Dynamoid::PrimaryKeyTypeMapping

@private

Public Class Methods

dynamodb_type(type, options) click to toggle source
# File lib/dynamoid/primary_key_type_mapping.rb, line 6
def self.dynamodb_type(type, options)
  if type.is_a?(Class)
    type = type.respond_to?(:dynamoid_field_type) ? type.dynamoid_field_type : :string
  end

  case type
  when :string, :serialized
    :string
  when :integer, :number
    :number
  when :datetime
    string_format = if options[:store_as_string].nil?
                      Dynamoid::Config.store_datetime_as_string
                    else
                      options[:store_as_string]
                    end
    string_format ? :string : :number
  when :date
    string_format = if options[:store_as_string].nil?
                      Dynamoid::Config.store_date_as_string
                    else
                      options[:store_as_string]
                    end
    string_format ? :string : :number
  else
    raise Errors::UnsupportedKeyType, "#{type} cannot be used as a type of table key attribute"
  end
end