On Mon, Jan 16, 2012 at 3:17 PM, Emil EnemŽ”ke <eme / medical-insight.com> wrote:
> Hi,
>
> Im trying to make an array a global array, but I cannot make it work.

"server" references a Hash.

> Here is what I have:
> ------------
> hostname=server1
> server = Hash.new { |hash, key| hash[key] = [] }
> service_name="service name"
> service=service1
>
> if server.key?(hostname)

Will likely return false because the Hash is empty initially.

> erver[hostname]=Hash.new { |hash, key| hash[key] = [] }
> erver[hostname]["service_name"]=Array.new
> erver[hostname]["service_name"]="service#{service_counter}"
> erver[hostname]["service_name"]=[x,x,x]

The three lines above all overwrite the same entry.  That's almost
certainly not what you want.

> end
> -----------------
>
> I have tried with
> $server[hostname]["service_name"]=[x,x,x]
> $server[hostname]["service_name"]=Array.new
>
> but that does not work... Any help is appreciated.

I am not 100% sure what you intend but I think you might just want

server = Hash.new { |hash, key| hash[key] = {} }
server[hostname]["service_name"] = ["service#{service_counter}", [x,x,x]]

Kind regards

robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/