2016-08-08 32 views
0

我發現在https://github.com/hw-cookbooks/haproxy自述宣佈以下混搭:​​它是一個有效的Ruby Mash語法嗎?

haproxy 'myhaproxy' do 
    config Mash.new(
    :global => { 
     :maxconn => node[:haproxy][:global_max_connections], 
     :user => node[:haproxy][:user], 
     :group => node[:haproxy][:group] 
    }, 
    :defaults => { 
     :log => :global, 
     :mode => :tcp, 
     :retries => 3, 
     :timeout => 5 
    }, 
    :frontend => { 
     :srvs => { 
     :maxconn => node[:haproxy][:frontend_max_connections], 
     :bind => "#{node[:haproxy][:incoming_address]}:#{node[:haproxy][:incoming_port]}", 
     :default_backend => :backend_servers 
     } 
    }, 
    :backend => { 
     :backend_servers => { 
     :mode => :tcp, 
     :server => [ 
      "an_node 192.168.99.9:9999" => { 
      :weight => 1, 
      :maxconn => node[:haproxy][:member_max_connections] 
      } 
     ] 
     } 
    } 
) 
end 

我想知道下面醪分別表示:

:server => [ 
      "an_node 192.168.99.9:9999" => { 
      :weight => 1, 
      :maxconn => node[:haproxy][:member_max_connections] 
      } 
     ] 

它是哈希數組?

+0

我想知道下面的Mash表示:或者它是一個散列數組? –

回答

2

這是有效的紅寶石語法,是的,這將產生一個數組與一個元素,這是一個散列。

[ 
    "an_node 192.168.99.9:9999" => { 
    :weight => 1, 
    :maxconn => node[:haproxy][:member_max_connections] 
    } 
] 
# => [{"an_node 192.168.99.9:9999"=>{:weight=>1, :maxconn=>2}}] 

順便說一下,這裏的抹布完全不相干。 Mash.new接受散列。如果它是一個有效的散列,那麼它將導致一個有效的散播。否則你會得到一個錯誤。問題中的代碼是有效的紅寶石散列。

+0

你能告訴我上面的mash的哈希表示嗎? –

+0

@vivek_jonam:更新了答案 –

+0

謝謝@sergio-tulentsev –

相關問題