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