[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Question on how to source a file with variables in it.

Oscar Gonzalez

8/9/2006 12:45:00 AM

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.any...
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!

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

5 Answers

Oscar Gonzalez

8/9/2006 12:47:00 AM

0

I meant:

> url = 'http://www.anydomai...
> contact = 'Joe'
> contactlast = 'Smith'
>

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

Ezra Zygmuntowicz

8/9/2006 1:22:00 AM

0


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

> I meant:
>
>> url = 'http://www.anydomai...
>> contact = 'Joe'
>> contactlast = 'Smith'
>>
>
> --
> Posted via http://www.ruby-....
>


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

hemant kumar

8/9/2006 3:29:00 AM

0

Or convert you file to a YAML.


-----Original Message-----
From: Ezra Zygmuntowicz [mailto:ezmobius@gmail.com]
Sent: Wednesday, August 09, 2006 6:52 AM
To: ruby-talk ML
Subject: Re: Question on how to source a file with variables in it.


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

> I meant:
>
>> url = 'http://www.anydomai...
>> contact = 'Joe'
>> contactlast = 'Smith'
>>
>
> --
> Posted via http://www.ruby-....
>


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


Oscar Gonzalez

8/9/2006 2:43:00 PM

0

Ezra Zygmuntowicz 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.



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

Mike Fletcher

8/9/2006 2:53:00 PM

0

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.ex...
contact:
first: Joe
last: Smith


Then

require 'yaml'

data = YAML::load_file( "vars.yml" )

puts "#{ data['contact']['first'] } from #{ data['url'] }"

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