class Dynamoid::AdapterPlugin::AwsSdkV2::Table

Represents a table. Exposes data from the “DescribeTable” API call, and also provides methods for coercing values to the proper types based on the table’s schema data

Attributes

schema[R]

Public Class Methods

new(schema) click to toggle source

@param [Hash] schema Data returns from a “DescribeTable” call

# File lib/dynamoid/adapter_plugin/aws_sdk_v2.rb, line 653
def initialize(schema)
  @schema = schema[:table]
end

Public Instance Methods

col_type(col) click to toggle source

Returns the API type (e.g. “N”, “S”) for the given column, if the schema defines it, nil otherwise

# File lib/dynamoid/adapter_plugin/aws_sdk_v2.rb, line 675
def col_type(col)
  col = col.to_s
  col_def = schema[:attribute_definitions].find { |d| d[:attribute_name] == col.to_s }
  col_def && col_def[:attribute_type]
end
hash_key() click to toggle source
# File lib/dynamoid/adapter_plugin/aws_sdk_v2.rb, line 667
def hash_key
  @hash_key ||= schema[:key_schema].find { |d| d[:key_type] == HASH_KEY  }.try(:attribute_name).to_sym
end
item_count() click to toggle source
# File lib/dynamoid/adapter_plugin/aws_sdk_v2.rb, line 681
def item_count
  schema[:item_count]
end
range_key() click to toggle source
# File lib/dynamoid/adapter_plugin/aws_sdk_v2.rb, line 657
def range_key
  @range_key ||= schema[:key_schema].find { |d| d[:key_type] == RANGE_KEY }.try(:attribute_name)
end
range_type() click to toggle source
# File lib/dynamoid/adapter_plugin/aws_sdk_v2.rb, line 661
def range_type
  range_type ||= schema[:attribute_definitions].find { |d|
    d[:attribute_name] == range_key
  }.try(:fetch,:attribute_type, nil)
end