Question on how to source a file with variables in it

I’m just trying to learn some scripting in Ruby and I am trying to
convert a shell script to ruby.

part of the shell script does this:

source ./filename.txt

“filename.txt” contains variables, so then once its done sourcing it,
those variables are available for the rest of the script, and a number
of other scripts that use the same values.

I can’t figure out how to do something like that in Ruby.

I already have a file with the values I need in it, it sits in the same
directory level as the script I’m running. Can someone point me to the
right calls or objects, how I can source it in a similar or better way
than shell/bash?

The syntax in the file I created is just like I’ve been defining
variables in ruby…

url = http://www.anydomain.com
contact = Joe
contactlast = Smith

Or if you have another suggestion with a more elegant solution, that
would be appreciated as well. I currenly have to copy and paste all the
variables section to each of the scripts that uses them when I update
them.

thanks!

I meant:

url = ‘http://www.anydomain.com
contact = ‘Joe’
contactlast = ‘Smith’

On Aug 8, 2006, at 5:46 PM, Oscar Gon wrote:

I meant:

url = ‘http://www.anydomain.com
contact = ‘Joe’
contactlast = ‘Smith’


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

The only way to do it with plain old local variables that I know of
is to use eval.

def load_vars(filname)
eval(File.open(filename).read)
end

-Ezra

Ezra Z. wrote:

The only way to do it with plain old local variables that I know of
is to use eval.

def load_vars(filname)
eval(File.open(filename).read)
end

-Ezra

Thanks Ezra, that’s exactly what I was looking for. I’ll give it a try!

@ hemant kumar

Thanks, I took a look at the yaml page but I’m not sure how I would use
that in ruby. I understand the syntax that’s used in YAML (I think) but
I’d still be left wondering how to read that into all/any of the ruby
scripts I need.

Or convert you file to a YAML.

Oscar Gon wrote:

Thanks, I took a look at the yaml page but I’m not sure how I would use
that in ruby. I understand the syntax that’s used in YAML (I think) but
I’d still be left wondering how to read that into all/any of the ruby
scripts I need.

vars.yml

url: http://www.example.com/
contact:
first: Joe
last: Smith

Then

require ‘yaml’

data = YAML::load_file( “vars.yml” )

puts “#{ data[‘contact’][‘first’] } from #{ data[‘url’] }”