Class: HashIdentable::LookupTable

Inherits:
Hash
  • Object
show all
Defined in:
lib/hash_identable/lookup_table.rb

Instance Method Summary collapse

Instance Method Details

#fetch(key, &blk) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/hash_identable/lookup_table.rb', line 21

def fetch key, &blk
  begin
    return de_serialize(self[key])
  rescue
    return blk.call if block_given?
    return nil
  end
end

#fetch_id(klass, &blk) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/hash_identable/lookup_table.rb', line 11

def fetch_id klass, &blk
  begin
    klass = serialzie(klass)
    return invert[klass]
  rescue
    return blk.call if block_given?
    return nil
  end
end

#store(key, klass) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/hash_identable/lookup_table.rb', line 30

def store key, klass
  klass = serialzie(klass)
  if has_key?(key)
    raise "Id's for objects must be unique"
  end
  if has_value?(klass)
    raise "Object is already registered"
  end
  super(key, klass)
end