Module: Dynamini::GlobalId::ClassMethods

Defined in:
lib/dynamini/global_id.rb

Instance Method Summary collapse

Instance Method Details

#deserialize_id(id) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/dynamini/global_id.rb', line 9

def deserialize_id(id)
  if self.range_key
    raise 'Dynamini::GlobalId.deserialize_id requires range key. please define .deserialize_id'
  end

  return id
end

#find(id) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/dynamini/global_id.rb', line 17

def find(id)
  hash_value, range_value = *deserialize_id(id)

  fail 'Range key cannot be blank.' if range_key && range_value.nil?
  response = client.get_item(
    table_name: self.table_name,
    key: self.create_key_hash(hash_value, range_value)
  )
  raise 'Item not found.' unless response.item
  new(response.item.symbolize_keys, false)
end