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