Это свойство представляет собой массив, порядок которого не имеет значения. Это действительно набор, но у Puppet нет наборов AFAICT. Итак, я пытаюсь использовать munge
чтобы отсортировать значения:
newproperty(:things, :array_matching => :all) do
munge do |value|
value.sort
end
end
Это не удается, потому что munge
применяется к каждому значению в массиве, а не ко всему. Есть ли способ заставить это работать?
У меня была аналогичная проблема, и я решил ее как это:
newproperty(:things, :array_matching => :all) do
def should(values)
sort(super)
end
def should=(values)
super
sort!(@should)
end
def insync?(is)
sort(is) == should
end
end
Если бы я писал новый модуль, я бы использовал API ресурсов, который имеет канонизировать крючок для этой цели.