I'm reading log file settings from a YAML file. Since Logger.new can 
take either an IO object or string, the YAML could look like:

logger:
  output: STDOUT

or

logger:
  output: /foo/bar

The problem is that the YAML structure is loaded as strings, so if I 
specify STDOUT I get a log file named "STDOUT". Is there an elegant way 
around this problem? I see two less-elegant ways:

if yaml["logger"]["output"] == "STDOUT" then
  log = Logger.new(STDOUT)
else
  ...
end

or

log = eval('Logger.new(' + yaml["logger"]["output"] + ')')

etc.

I know casting is bad. Any suggestions appreciated. Thanks!

-- 
Posted via http://www.ruby-forum.com/.