class Hash def to_struct(struct_name) Struct.new(struct_name,*keys).new(*values) end end if $0 == __FILE__ h = {:name=>"Dan","age"=>33,"rank"=>"SrA","grade"=>"E4"} s = h.to_struct("Foo") puts "name: " + s.name puts "age: " + s.age.to_s puts "rank: " + s.rank puts "grade: " + s.grade end =begin Note: An empty string used as a key will cause 1.8 to choke =end