[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Re: [nuby] shell-like substitution in a string

Warren Brown

10/13/2004 4:14:00 PM

Lionel,

> I'd like to make some kind of substitution like in a
> shell, i.e. having:
> "${tool} -o ${target} -L${libpath} -l${lib} ${source}"
>
> with an env like this:
> env = {
> "tool" => "gcc",
> "target" => "hello.exe",
> "libpath" => "/usr/lib",
> "lib" => "somelib",
> "source" => "hello.c"
> }
>
> it should give:
> "gcc -o hello.exe -L/usr/lib -lsomelib hello.c"

If there any problem with simply:

"#{env['tool']} -o #{env['target']} -L#{env['libpath']} -l#{env['lib']}
#{env['source']}"

I hope this helps.

- Warren Brown





1 Answer

Lionel Thiry

10/14/2004 10:20:00 PM

0

Warren Brown a écrit :

> Lionel,
>
>
>>I'd like to make some kind of substitution like in a
>>shell, i.e. having:
>>"${tool} -o ${target} -L${libpath} -l${lib} ${source}"
>>
>>with an env like this:
>>env = {
>>"tool" => "gcc",
>>"target" => "hello.exe",
>>"libpath" => "/usr/lib",
>>"lib" => "somelib",
>>"source" => "hello.c"
>>}
>>
>>it should give:
>>"gcc -o hello.exe -L/usr/lib -lsomelib hello.c"
>
>
> If there any problem with simply:
>
> "#{env['tool']} -o #{env['target']} -L#{env['libpath']} -l#{env['lib']}
> #{env['source']}"
>
> I hope this helps.
>
> - Warren Brown

I want to manage those cases too:

Initial description:
"${tool} -o ${target} -L${libpath} -l${lib} ${source}"

Env:
env = {
"tool" => "gcc",
"target" => "hello.exe${ext}",
"ext" => ".exe",
"libpath" => "/usr/lib",
"lib" => "somelib",
"source" => "hello.o"
}

Interpolation:
"gcc -o hello.exe -L/usr/lib -lsomelib hello.c"

Or:
Initial description:
"${tool} -o ${target} -L${libpath} -l${lib} ${sources}"

Env:
env = {
"tool" => "gcc",
"target" => "hello.exe${ext}",
"ext" => ".exe",
"libpath" => ["/usr/lib", "/usr/local/lib"],
"lib" => ["somelib", "anotherlib"],
"sources" => ["hello.o", "display.o", "other.o"]
}

Interpolation:
"gcc -o hello.exe -L/usr/lib -L/usr/local/lib -lsomelib -lanotherlib
hello.o display.o other.o"

Then, no, simple ruby string substitution cannot fit into my goals. But
thanks for the remark.

Lionel Thiry