Class: Dynamoid::AdapterPlugin::AwsSdkV3::Table
- Inherits:
-
Object
- Object
- Dynamoid::AdapterPlugin::AwsSdkV3::Table
- Defined in:
- lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb
Overview
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
Instance Attribute Summary collapse
-
#schema ⇒ Object
readonly
Returns the value of attribute schema.
Instance Method Summary collapse
-
#col_type(col) ⇒ Object
Returns the API type (e.g. “N”, “S”) for the given column, if the schema defines it, nil otherwise.
- #hash_key ⇒ Object
-
#initialize(schema) ⇒ Table
constructor
A new instance of Table.
- #item_count ⇒ Object
- #name ⇒ Object
- #range_key ⇒ Object
- #range_type ⇒ Object
Constructor Details
#initialize(schema) ⇒ Table
Returns a new instance of Table.
14 15 16 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 14 def initialize(schema) @schema = schema[:table] end |
Instance Attribute Details
#schema ⇒ Object (readonly)
Returns the value of attribute schema.
9 10 11 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 9 def schema @schema end |
Instance Method Details
#col_type(col) ⇒ Object
Returns the API type (e.g. “N”, “S”) for the given column, if the schema defines it, nil otherwise
36 37 38 39 40 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 36 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 ⇒ Object
28 29 30 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 28 def hash_key @hash_key ||= schema[:key_schema].find { |d| d[:key_type] == HASH_KEY }.try(:attribute_name).to_sym end |
#item_count ⇒ Object
42 43 44 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 42 def item_count schema[:item_count] end |
#name ⇒ Object
46 47 48 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 46 def name schema[:table_name] end |
#range_key ⇒ Object
18 19 20 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 18 def range_key @range_key ||= schema[:key_schema].find { |d| d[:key_type] == RANGE_KEY }.try(:attribute_name) end |
#range_type ⇒ Object
22 23 24 25 26 |
# File 'lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb', line 22 def range_type range_type ||= schema[:attribute_definitions].find do |d| d[:attribute_name] == range_key end.try(:fetch, :attribute_type, nil) end |