Sha256: 42bf9bf8b026ceaa7ec3c5792d406f499fa3fb11c34dd61b3741e4ad50ea5d7e
Contents?: true
Size: 1.75 KB
Versions: 3
Compression:
Stored size: 1.75 KB
Contents
# frozen_string_literal: true module Dynamodb module TableActions def get_item(_table_name, _key, options = {}) _item = client.get_item( { table_name: _table_name, key: _key }.merge!(options) )[:item] _item ? item_to_object(_item) : nil end def put_item(_table_name, _item, options = {}) client.put_item( { table_name: _table_name, item: _item }.merge!(options) ) end def delete_item(_table_name, _key, options = {}) client.delete_item( { table_name: _table_name, key: _key }.merge!(options) ) end def _query(opts) result = client.query(opts) result.items = result.items.map { |x| item_to_object(x) } result end def describe_table(_table_name) client.describe_table(table_name: _table_name) end def list_tables client.list_tables.table_names end def delete_table(_table_name) # To prevent accidentally deleting tables in production raise 'Can not delete tables' unless Dynamodb.configuration.can_delete_tables client.delete_table(table_name: _table_name) end def create_table(_table_name, options) # To prevent accidentally deleting tables in production raise 'Can not create tables' unless Dynamodb.configuration.can_create_tables resource.create_table( { table_name: _table_name, provisioned_throughput: { read_capacity_units: 5, write_capacity_units: 5, } }.merge!(options) ) end private # Converts a hash item result from dynamodb to object def item_to_object(_item) self.new(_item) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dynamodb-ruby-0.5.1 | lib/dynamodb/table_actions.rb |
dynamodb-ruby-0.5.0 | lib/dynamodb/table_actions.rb |
dynamodb-ruby-0.4.0 | lib/dynamodb/table_actions.rb |