From: Rob Biedenharn Date: 2006-06-05T09:23:04+09:00 Subject: Re: [QUIZ][SOLUTION] Hash to OpenStruct (#81) Gotta post this before I look at other solutions. This caused me to look up what an OpenStruct was so that was benefit #1. Since it was a simple one, I worked through it with my son who is going through Chris Pine's _Learning_to_Program_ right now so that was benefit #2. I don't know if this will handle the crazier recursive YAML files, but it seems to be fine for normal ones. My son actually struck on the OpenStruct#send being a problem with the presence of the 'send' key in the YAML. -Rob # RubyQuiz81: Hash to OpenStruct # 2006-06-02 require 'ostruct' require 'yaml' class HashToOpenStruct def self.from_yaml(yamlfile) self.to_ostruct(YAML.load(File.open(yamlfile))) end def self.to_ostruct(h) c = OpenStruct.new h.each { |k,v| c.__send__("#{k}=".to_sym, v.kind_of?(Hash) ? to_ostruct(v) : v) } c end end __END__ Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com +1 513-295-4739