Module: Minidynamo::Model::Keys

Included in:
Minidynamo::Model
Defined in:
lib/minidynamo/model/keys.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#range_keyObject

Returns the value of attribute range_key.



8
9
10
# File 'lib/minidynamo/model/keys.rb', line 8

def range_key
  @range_key
end

#read_capacity=(value) ⇒ Object (writeonly)

For all the fields with defaults



6
7
8
# File 'lib/minidynamo/model/keys.rb', line 6

def read_capacity=(value)
  @read_capacity = value
end

#write_capacity=(value) ⇒ Object (writeonly)

For all the fields with defaults



6
7
8
# File 'lib/minidynamo/model/keys.rb', line 6

def write_capacity=(value)
  @write_capacity = value
end

Instance Method Details

#hash_keyObject



10
11
12
# File 'lib/minidynamo/model/keys.rb', line 10

def hash_key
  @hash_key || {:id => :string}
end

#hash_key=(key) ⇒ Object



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

def hash_key=(key)
  @hash_key = key
  hk = key.keys[0]
  finder_method_name = "find_by_#{hk}".to_sym           
  self.define_singleton_method finder_method_name do |x|
    find_by_id x
  end
  type = key[hk]
  attribute_creator_method_name = "#{type.to_s}_attr".to_sym
  
  send attribute_creator_method_name, hk unless attribute_creator_method_name == :find_by_id
end

#hash_key_attribute_nameObject



27
28
29
# File 'lib/minidynamo/model/keys.rb', line 27

def hash_key_attribute_name
  hash_key.keys[0]
end

#hash_key_typeObject



35
36
37
# File 'lib/minidynamo/model/keys.rb', line 35

def hash_key_type
  dynamo_db_table.hash_key.type.to_s.chars.first.to_sym
end

#hash_range_table?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/minidynamo/model/keys.rb', line 39

def hash_range_table?
  ! range_key.nil?
end

#range_key_attribute_nameObject



31
32
33
# File 'lib/minidynamo/model/keys.rb', line 31

def range_key_attribute_name
  range_key.keys[0]
end