Class: Mingle::KeyvalueStore::DynamodbBased
- Inherits:
-
Object
- Object
- Mingle::KeyvalueStore::DynamodbBased
- Defined in:
- lib/mingle_keyvalue_store.rb
Instance Method Summary collapse
- #[](store_key) ⇒ Object
- #[]=(store_key, value) ⇒ Object
- #all_items ⇒ Object
- #clear ⇒ Object
- #delete(key) ⇒ Object
-
#initialize(table_name, key_column, value_column) ⇒ DynamodbBased
constructor
A new instance of DynamodbBased.
- #names ⇒ Object
Constructor Details
#initialize(table_name, key_column, value_column) ⇒ DynamodbBased
Returns a new instance of DynamodbBased.
81 82 83 84 85 86 |
# File 'lib/mingle_keyvalue_store.rb', line 81 def initialize(table_name, key_column, value_column) @key_column = key_column.to_s @value_column = value_column.to_s @table_name = table_name @table = Aws::DynamoDB::Resource.new.table(table_name) end |
Instance Method Details
#[](store_key) ⇒ Object
88 89 90 91 92 |
# File 'lib/mingle_keyvalue_store.rb', line 88 def [](store_key) if item = @table.get_item(key: {@key_column => store_key}).item item[@value_column] end end |
#[]=(store_key, value) ⇒ Object
94 95 96 97 |
# File 'lib/mingle_keyvalue_store.rb', line 94 def []=(store_key, value) raise ArgumentError, 'Value must be String' unless value.is_a?(String) @table.put_item(item: {@key_column => store_key, @value_column => value}) end |
#all_items ⇒ Object
110 111 112 |
# File 'lib/mingle_keyvalue_store.rb', line 110 def all_items all_items_from_table end |
#clear ⇒ Object
99 100 101 102 103 104 |
# File 'lib/mingle_keyvalue_store.rb', line 99 def clear all_items_from_table.each do |item| @table.delete_item(key: {@key_column => item['testkey']}) end nil end |
#delete(key) ⇒ Object
114 115 116 117 |
# File 'lib/mingle_keyvalue_store.rb', line 114 def delete(key) @table.delete_item(key: {@key_column => key}) nil end |
#names ⇒ Object
106 107 108 |
# File 'lib/mingle_keyvalue_store.rb', line 106 def names all_items_from_table(attributes_to_get: [@key_column]).map{|hash| hash[@key_column]} end |