Sha256: b9eeb7ee2738c6185b9e2222ebbf482225d4398adaf45ed6e25899ae05453195

Contents?: true

Size: 1.07 KB

Versions: 6

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module Dynamoid
  # @private
  class PrimaryKeyTypeMapping
    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
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dynamoid-3.10.0 lib/dynamoid/primary_key_type_mapping.rb
dynamoid-3.9.0 lib/dynamoid/primary_key_type_mapping.rb
dynamoid-3.8.0 lib/dynamoid/primary_key_type_mapping.rb
dynamoid-3.7.1 lib/dynamoid/primary_key_type_mapping.rb
dynamoid-3.7.0 lib/dynamoid/primary_key_type_mapping.rb
dynamoid-3.6.0 lib/dynamoid/primary_key_type_mapping.rb