Class: Mingle::KeyvalueStore::DynamodbBased

Inherits:
Object
  • Object
show all
Defined in:
lib/mingle_keyvalue_store.rb

Instance Method Summary collapse

Constructor Details

#initialize(table_name, key_column, value_column) ⇒ DynamodbBased

Returns a new instance of DynamodbBased.



70
71
72
73
74
# File 'lib/mingle_keyvalue_store.rb', line 70

def initialize(table_name, key_column, value_column)
  @key_column = key_column
  @value_column = value_column.to_s
  @table_name = table_name
end

Instance Method Details

#[](store_key) ⇒ Object



76
77
78
79
80
# File 'lib/mingle_keyvalue_store.rb', line 76

def [](store_key)
  if attribute = attributes(table_items[store_key])[@value_column]
    attribute
  end
end

#[]=(store_key, value) ⇒ Object



82
83
84
# File 'lib/mingle_keyvalue_store.rb', line 82

def []=(store_key, value)
  table_items.create(@key_column => store_key, @value_column => value)
end

#all_itemsObject



94
95
96
# File 'lib/mingle_keyvalue_store.rb', line 94

def all_items
  table_items.map { |item| attributes(item) }
end

#clearObject



86
87
88
# File 'lib/mingle_keyvalue_store.rb', line 86

def clear
  table_items.each(&:delete)
end

#delete(key) ⇒ Object



98
99
100
# File 'lib/mingle_keyvalue_store.rb', line 98

def delete(key)
  table_items.where(@key_column => key).first.delete
end

#namesObject



90
91
92
# File 'lib/mingle_keyvalue_store.rb', line 90

def names
  table_items.map(&:hash_value)
end