Sha256: e6a28f1f74f92c4628b37859f94eb121e689bb316ae6e413e27f22aa7fe411f2

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Dynamoid
  class PrimaryKeyTypeMapping
    def self.dynamodb_type(type, options)
      if Class === type
        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

2 entries across 2 versions & 1 rubygems

Version Path
dynamoid-3.1.0 lib/dynamoid/primary_key_type_mapping.rb
dynamoid-3.0.0 lib/dynamoid/primary_key_type_mapping.rb