Module: Minidynamo::Model::DynamoDBOverloads::ClassMethods

Defined in:
lib/minidynamo/model/dynamo_db_overloads.rb

Instance Method Summary collapse

Instance Method Details

#convert_key_to_dynamo_db_types(key) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/minidynamo/model/dynamo_db_overloads.rb', line 41

def convert_key_to_dynamo_db_types key
	keyname = key.keys[0]
	type = key[keyname]
	equivalent_type = nil
	case type
	when :float
		equivalent_type = :number
	when :integer
		equivalent_type = :number
	when :boolean
		equivalent_type = :number
	when :binary
		equivalent_type = :binary
	else
		equivalent_type = :string
	end
	key = {}
	key[keyname] = equivalent_type
	return key
end

#create_tableObject

Changed: Don’t accept parameters when creating, use the declared options inside the model



14
15
16
17
18
19
20
21
22
23
# File 'lib/minidynamo/model/dynamo_db_overloads.rb', line 14

def create_table
	create_opts = {}
	create_opts[:hash_key] = convert_key_to_dynamo_db_types hash_key
	create_opts[:range_key] = convert_key_to_dynamo_db_types range_key if range_key

	dynamo_db.tables.create   	dynamo_db_table_name,
								read_capacity,
								write_capacity,
								create_opts
end

#dynamo_db_table(shard_name = nil) ⇒ DynamoDB::Table

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

changed to use hash key other than id

Returns:

  • (DynamoDB::Table)


28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/minidynamo/model/dynamo_db_overloads.rb', line 28

def dynamo_db_table shard_name = nil
	table = dynamo_db.tables[dynamo_db_table_name(shard_name)]
	table.hash_key = convert_key_to_dynamo_db_types(hash_key) #[:id, :string]
	table.range_key = convert_key_to_dynamo_db_types(range_key) if range_key

	#table.hash_key = {:public_token => :string }
	#table.range_key = {:created_at => :string }

	#table.hash_key = [:public_token, :string]
	#table.range_key = [:created_at, :string]
	table
end