Module: Dynamodb::Querying

Extended by:
TableActions
Included in:
Base
Defined in:
lib/dynamodb/querying.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TableActions

_query, create_table, delete_item, delete_table, describe_table, get_item, list_tables, put_item

Class Method Details

.included(base) ⇒ Object



10
11
12
13
# File 'lib/dynamodb/querying.rb', line 10

def self.included(base)
  base.extend ClassMethods
  base.extend TableActions
end

Instance Method Details

#destroyObject



40
41
42
43
44
45
46
47
# File 'lib/dynamodb/querying.rb', line 40

def destroy
  _keys = self.class._key_definitions(@data[hash_key], @data[range_key])
  self.class.delete_item(table_name, _keys)
  true
rescue Aws::DynamoDB::Errors::ServiceError => e
  handle_error(e)
  false
end

#saveObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/dynamodb/querying.rb', line 29

def save
  return false unless valid?

  generate_timestamps
  self.class.put_item(table_name, @data)
  true
rescue Aws::DynamoDB::Errors::ServiceError => e
  handle_error(e)
  false
end

#update(attributes = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/dynamodb/querying.rb', line 15

def update(attributes = {})
  # Stringify keys for updated attributes - data consistency
  @data.deep_merge!(attributes.deep_stringify_keys)

  return false unless valid?

  generate_timestamps
  self.class.put_item(table_name, @data)
  true
rescue Aws::DynamoDB::Errors::ServiceError => e
  handle_error(e)
  false
end