From: "Rebhan, Gilbert" Date: 2007-03-12T20:08:05+09:00 Subject: YAML.load_file problems Hi, i have a program where several things are hard coded for production i need a config file now, must be editable and readable by hand, so i decided to try with YAML program with hard coded stuff = require "highline/import" CVSEXE="//foobar/c$/tools/cvsnt/cvs.exe" cvsrepos=%w[test test1 foo bar foobar] cvsuser = ask("Enter CVS User: ") {|q| q.default = "#{ENV["USERNAME"]}" q.echo = true} cvspass = ask("Enter your password: ") { |q| q.echo = '*' } cvsrepos.each {|x| puts "Login CVS Repository >> #{x} ..." IO.popen("#{CVSEXE} -d :pserver:#{cvsuser}:#{cvspass}@cvsprod:d:/cvsrepos/#{x} login") } puts "Login successful !!" i tried with YAML, first step = require 'yaml' require "highline/import" CVSEXE="//foobar/c$/tools/cvsnt/cvs.exe" cvsrepos=YAML.load_file( "config.yaml" ) cvsuser = ask("Enter CVS User: ") {|q| q.default = "#{ENV["USERNAME"]}" q.echo = true} cvspass = ask("Enter your password: ") { |q| q.echo = '*' } cvsrepos.each {|x| puts "Login CVS Repository >> #{x} ..." IO.popen("#{CVSEXE} -d :pserver:#{cvsuser}:#{cvspass}@cvsprod:d:/cvsrepos/#{x} login") } puts "Login successful !!" config.yaml looks like = --- - test - test1 - foo - bar - foobar works fine, but now i want to get the CVSEXE path also into that yamlfile, i tried require 'yaml' require "highline/import" YAML.load_file( "config.yaml" ) cvsuser = ask("Enter CVS User: ") {|q| q.default = "#{ENV["USERNAME"]}" q.echo = true} cvspass = ask("Enter your password: ") { |q| q.echo = '*' } cvsrepos.each {|x| puts "Login CVS Repository >> #{x} ..." IO.popen("#{CVSEXE} -d :pserver:#{cvsuser}:#{cvspass}@cvsprod:d:/cvsrepos/#{x} login") } puts "Login successful !!" but that didn't work, my config.yaml looks like = --- CVSEXE:"//foobar/c$/tools/cvsnt/cvs.exe" --- cvsrepos: - test - test1 - foo - bar - foobar What't the correct YAML Syntax and how do i access the different section from my script that loads the yaml file ? Regards, Gilbert