On Fri, Mar 15, 2019 at 8:54 AM Dirk Heinrichs <[email protected]>
wrote:

> Hi,
>
> I've written a custom type that has an array property. I quickly found out
> that it isn't idempotent unless the array is sorted. Turned out that it was
> easy to sort the current values in the provider but I couldn't find out how
> to properly sort the input values w/o putting that burden on the user of
> the type. I tried with munge like this:
>
> newproperty(:array_prop, :array_matching => :all) do
> munge do |value|
> value.sort
> end
> end
> but it seems that just gets the first array element as string, which is
> neither obvious nor intuitive.
>

Instead of using munge, you can write a custom insync? implementation to
compare sorted versions of the current value and the suggested value. It
should look something like this:

newproperty(:array_prop, :array_matching => :all) do
    def insync?(is)
        is.sort == should.sort
    end
end


> Is there any other way than having to use
>
> mytype { 'title':
> ...
> array_prop => sort($array),
> ...
> }
>
> ?
>
> Thanks...
>
> Dirk
>
> --
>
> *Dirk Heinrichs*
> Senior Systems Engineer, Delivery Pipeline
> OpenText ™ Discovery | Recommind
> *Phone*: +49 2226 15966 18
> *Email*: [email protected]
> *Website*: www.recommind.de
> Recommind GmbH, Von-Liebig-Straße 1, 53359 Rheinbach
> Vertretungsberechtigte Geschäftsführer Gordon Davies, Madhu Ranganathan,
> Christian Waida, Registergericht Amtsgericht Bonn, Registernummer HRB 10646
> This e-mail may contain confidential and/or privileged information. If you
> are not the intended recipient (or have received this e-mail in error)
> please notify the sender immediately and destroy this e-mail. Any
> unauthorized copying, disclosure or distribution of the material in this
> e-mail is strictly forbidden
> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
> irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
> vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
> Weitergabe dieser Mail sind nicht gestattet.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/b50e9e0461472e2300db026f567a8ddec77d5cfc.camel%40opentext.com
> <https://groups.google.com/d/msgid/puppet-users/b50e9e0461472e2300db026f567a8ddec77d5cfc.camel%40opentext.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CADWDnrn93bw9s_viVpQ9qsqfFtSoefFWzvse3_mmSAw6Pw026Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to