class Hashery::StaticHash

StaticHash ia a Hash object which raises an error if any previously-defined key attempts to be set again.

foo = StaticHash.new
foo['name'] = 'Tom'    #=> 'Tom'
foo['age']  = 30       #=> 30
foo['name'] = 'Bob'

produces

ArgumentError: Duplicate key for StaticHash -- 'name'

StaticHash has it's orgins in Gavin Kistner's WriteOnceHash class found in his basiclibrary.rb script.

TODO: Maybe StaticHash isn't bets name for this class?

Public Instance Methods

store(key, value) click to toggle source

Set a value for a key. Raises an error if that key already exists with a different value.

key - Index key to associate with value. value - Value to associate with key.

Retruns value.

Calls superclass method Hashery::CRUDHash#store
# File lib/hashery/static_hash.rb, line 31
def store(key, value)
  if key?(key) && fetch(key) != value
    raise ArgumentError, "Duplicate key for StaticHash -- #{key.inspect}"
  end
  super(key, value)
end