= CastingHash A CastingHash is a Hash that allows _casting_ procedures to defined that the keys and values pass through upon assignment. c = CastingHash.new c.cast_proc = lambda { |k,v| [k.to_s, v.to_s.upcase] } c[:a] = 'a' c.assert == {'a'=>'A'}