Rubyについてよく分かりませんが、私はこのコードが何をしているのか理解してくれることを願っていました。この行...PuppetモジュールのRubyコードを理解するopenstack/nova
newproperty(:value, :array_matching => :all) do
が...何をしているか
newproperty(:value, :array_matching => :all) do
desc 'The value of the setting to be defined.'
def insync?(is)
return true if @should.empty?
return false unless is.is_a? Array
return false unless is.length == @should.length
return (
is & @should == is or
is & @should.map(&:to_s) == is
)
end
は、私は全くわかりません。 2つのパラメータを受け入れる関数を定義しています:値とarray_matching?ループですか?そして、私は:array_matching =>:のすべてについて理解していません。
次は...
desc 'The value of the setting to be defined.'
です...これはドキュメントに建てられたのいくつかの並べ替えですか?次はこのビットです:
def insync?(is)
return true if @should.empty?
return false unless is.is_a? Array
return false unless is.length == @should.length
return (
is & @should == is or
is & @should.map(&:to_s) == is
)
"insync"という関数が定義されていると思います。わからない "?"手段。また、親スコープで宣言されたグローバル変数もあるはずです。
おかげ
ご回答ありがとうございます。私はまだnewpropertyサブルーチンのパラメータ宣言で '=>'が何を意味するのか理解していません。 :) –
私は完全にはわからなかったので、私はそれを探し、この同じリソースを見つけました。それは、それが 'namevar'と呼ばれる人形のユニークな特性のようです。 http://garylarizza.com/blog/2013/11/25/fun-with-providers/ cntrl fのセクションに 'Namevars is unique little snowflakes' –