pretty neat Mash class (Magic Hash)

class Mash < Hash   def method_missing(name, value=nil)     key = name.to_s.sub(/[=?!]$/,'').to_sym     self[key] = value if name.to_s[-1,1] == "="     self[key] = Mash.new unless self[key] || value     return self[key]   end end

Its like OpenStruct...so what can you do?

require 'pp' m = Mash.new m.first_name = "john" m.last_name = "doe" m.address.street = "somewhere drive" m.address.city = "somecity" m.address.state = "somestate" m.address.zip = 12334 pp m

{:address=>   {:state=>"somestate",    :street=>"somewhere drive",    :city=>"somecity",    :zip=>12334}, :first_name=>"john", :last_name=>"doe"}