Best way to assign args?

on Mac OS X using launchd i’m only able to pass args like that :

[“DEBUGG=true”, “auto=true”, “dummy=empty”,
“files=/Users/yvon/MacSOUP_proxad/proxad,
/Users/yvon/MacSOUP_eclipse/eclipse,
/Users/yvon/MacSOUP_news.individual.net/individual”]

then for the time being i do :

@h={}
$*.each {|a| k,v=a.split("="); @h[k]=v}

and, afterwards :

@h[‘DEBUGG’]=(@h[‘DEBUGG’]==“true”)
for bool, and for array :

@h[‘files’][email protected][‘files’].split(", ")

i don’t like that because i have to know, a priori, the types and names
of the args.

a better solution more rubyish ???

The following does what you want in one pass:

INP = [“DEBUGG=true”, “auto=true”, “dummy=empty”,
“files=/Users/yvon/MacSOUP_proxad/proxad, /Users/yvon/MacSOUP_eclipse/
eclipse, /Users/yvon/MacSOUP_news.individual.net/individual”]

@h = {}
INP.each do |a|
k,v = a.split("=")
case v
when /true/ then @h[k] = true
when /false/ then @h[k] = false
when /,[\s]/ then @h[k] = v.split(/,[\s]/)
else @h[k] = v
end
end

It is easily extend to other cases if necessary. Whether or not it is
better or more Ruby-ish is for you to decide.

Hope this helps.

Regards, Morton

Morton G. [email protected] wrote:

The following does what you want in one pass:

fanstatic !

[snip]

It is easily extend to other cases if necessary. Whether or not it is
better or more Ruby-ish is for you to decide.

Hope this helps.

yes it helps me having different solutions, at least.

thanx

Yvon

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs