class HashIdentable::LookupTable

Public Instance Methods

fetch(key, &blk) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
Calls superclass method
# 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

Private Instance Methods

de_serialize(klass) click to toggle source
# File lib/hash_identable/lookup_table.rb, line 46
def de_serialize klass
  klass.to_s.camelize
end
serialzie(klass) click to toggle source
# File lib/hash_identable/lookup_table.rb, line 42
def serialzie klass
  klass.to_s.underscore
end