Chris Hulan wrote: > On Apr 25, 11:16 am, Johan Eriksson <jo... / johaneriksson.se> wrote: >> Hi! >> >> I have some troubles with this. >> >> obj_as_list.each do |att| >> if att[1].is_a?(String) >> att[1] = "'#{att[1]'" > You're missing a '}' here ----------^ > > does that help? > Nope. I am providing the surrounding function here. (It is defined inside a class.) def load_from_file(filename) require 'yaml' yaml_dict = YAML::load(File.open(filename)) object_list = [] #The list that should be returned yaml_dict[yaml_dict.keys[0]].each do |yaml_obj| new_obj = self.class.new yaml_obj.each do |obj| obj_as_list = obj.to_a obj_as_list.each do |att| if att[1].is_a?(String) att[1] = "'#{att[1]}'" end str = "new_obj.#{att[0]} = #{att[1]}" eval(str) end end object_list << new_obj end object_list end And the error: NameError: undefined local variable or method `att' for main:Object /Johan