Class: Dynamini::TestClient
- Inherits:
-
Object
- Object
- Dynamini::TestClient
- Defined in:
- lib/dynamini/test_client.rb
Instance Attribute Summary collapse
-
#hash_key ⇒ Object
readonly
Returns the value of attribute hash_key.
Instance Method Summary collapse
- #batch_get_item(args = {}) ⇒ Object
- #batch_write_item(request_options) ⇒ Object
- #delete_item(args = {}) ⇒ Object
- #get_item(args = {}) ⇒ Object
-
#initialize(hash_key) ⇒ TestClient
constructor
A new instance of TestClient.
- #reset ⇒ Object
- #update_item(args = {}) ⇒ Object
Constructor Details
#initialize(hash_key) ⇒ TestClient
Returns a new instance of TestClient.
8 9 10 11 |
# File 'lib/dynamini/test_client.rb', line 8 def initialize(hash_key) @data = {} @hash_key = hash_key end |
Instance Attribute Details
#hash_key ⇒ Object (readonly)
Returns the value of attribute hash_key.
6 7 8 |
# File 'lib/dynamini/test_client.rb', line 6 def hash_key @hash_key end |
Instance Method Details
#batch_get_item(args = {}) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/dynamini/test_client.rb', line 32 def batch_get_item(args = {}) responses = {} args[:request_items].each do |k, v| responses[k] = [] v[:keys].each do |key_hash| item = @data[k][key_hash.values.first] responses[k] << item end end OpenStruct.new(responses: responses) end |
#batch_write_item(request_options) ⇒ Object
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dynamini/test_client.rb', line 46 def batch_write_item() [:request_items].each do |k, v| @data[k] ||= {} v.each do |request_hash| item = request_hash[:put_request][:item] key = item[hash_key] @data[k][key] = item end end end |
#delete_item(args = {}) ⇒ Object
57 58 59 |
# File 'lib/dynamini/test_client.rb', line 57 def delete_item(args = {}) @data[args[:table_name]].delete(args[:key][hash_key]) end |
#get_item(args = {}) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/dynamini/test_client.rb', line 24 def get_item(args = {}) table = args[:table_name] @data[table] ||= {} attributes_hash = @data[table ][args[:key][hash_key]] item = attributes_hash.nil? ? nil : attributes_hash OpenStruct.new(item: item) end |
#reset ⇒ Object
61 62 63 |
# File 'lib/dynamini/test_client.rb', line 61 def reset @data = {} end |
#update_item(args = {}) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/dynamini/test_client.rb', line 13 def update_item(args = {}) table = args[:table_name] updates = flatten_attribute_updates(args[:attribute_updates]).merge({hash_key => args[:key][hash_key]}) @data[table] ||= {} if @data[table][args[:key][hash_key]].present? @data[table][args[:key][hash_key]].merge!(updates) else @data[table][args[:key][hash_key]] = updates end end |