OpenHash class I thought I would share

I love OpenStruct, but it has no ability to iterate over the members.
I had extended it, but recently I use this little class. Anyone see
any issues with it ?

class OpenHash < Hash
def method_missing(name, value=nil)
key = name.to_s.sub(/[=?!]$/,’’).to_sym
self[key] = value if name.to_s[-1,1] == “=”
return self[key]
end
end

o = OpenHash.new
=> {}

o.a = 1
=> 1

o.b = 2
=> 2

o.h = OpenHash.new
=> {}

o.h.a = 1
=> 1

o.h.b = 2
=> 2

pp o
{:a=>1, :b=>2, :h=>{:a=>1, :b=>2}}
=> nil