module Dynamoid::Adapter::Local
Public Instance Methods
batch_get_item(options)
click to toggle source
BatchGetItem
# File lib/dynamoid/adapter/local.rb, line 16 def batch_get_item(options) Hash.new { |h, k| h[k] = Array.new }.tap do |hash| options.each do |table_name, keys| table = data[table_name] Array(keys).each do |key| hash[table_name] << table[:data][key] end end end end
create_table(table_name, key)
click to toggle source
CreateTable
# File lib/dynamoid/adapter/local.rb, line 28 def create_table(table_name, key) data[table_name] = {:id => key, :data => {}} end
data()
click to toggle source
Gimpy hash that should be somewhat equivalent to what Amazon's actual DynamoDB, for offline development.
# File lib/dynamoid/adapter/local.rb, line 7 def data @data ||= {} end
delete_item(table_name, key)
click to toggle source
DeleteItem
# File lib/dynamoid/adapter/local.rb, line 33 def delete_item(table_name, key) data[table_name][:data].delete(key) end
delete_table(table_name)
click to toggle source
DeleteTable
# File lib/dynamoid/adapter/local.rb, line 38 def delete_table(table_name) data.delete(table_name) end
get_item(table_name, key)
click to toggle source
GetItem
# File lib/dynamoid/adapter/local.rb, line 45 def get_item(table_name, key) data[table_name][:data][key] end
list_tables()
click to toggle source
ListTables
# File lib/dynamoid/adapter/local.rb, line 50 def list_tables data.keys end
put_item(table_name, object)
click to toggle source
PutItem
# File lib/dynamoid/adapter/local.rb, line 55 def put_item(table_name, object) table = data[table_name] table[:data][object[table[:id]]] = object end
query(table_name, id)
click to toggle source
Query
# File lib/dynamoid/adapter/local.rb, line 61 def query(table_name, id) get_item(table_name, id) end
reset_data()
click to toggle source
# File lib/dynamoid/adapter/local.rb, line 11 def reset_data self.data.each {|k, v| v[:data] = {}} end
scan(table_name, scan_hash)
click to toggle source
Scan
# File lib/dynamoid/adapter/local.rb, line 66 def scan(table_name, scan_hash) return [] if data[table_name].nil? data[table_name][:data].values.select{|d| scan_hash.all?{|k, v| !d[k].nil? && d[k] == v}} end