Class: HashIdentable::LookupTable
- Inherits:
-
Hash
- Object
- Hash
- HashIdentable::LookupTable
- 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 |