StaticHash

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

Synopsis

  foo = Hash::Static.new
  foo['name'] = 'Tom'    #=> 'Tom'
  foo['age']  = 30       #=> 30
  foo['name'] = 'Bob'

produces

  Error: StaticHash has value for key 'name' in object:
      {"name"=>"Tom", "age"=>30} (RuntimeError)
Methods
Public Instance methods
[]=(key,val)

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

# File lib/facets/more/statichash.rb, line 60
  def []=(key,val)
    if self.has_key?(key) && self[key]!=val
      raise ArgumentError, "StaticHash already has value for key '#{key.to_s}'"
    end
    super
  end