Great, exactly what I need. Thank you On Sunday, April 12, 2015 at 1:35:22 PM UTC+2, Henrik Lindberg wrote: > > On 2015-12-04 10:14, Alessandro Franceschi wrote: > > Hi all, > > I've started to make some future parser versions of the most useful Tiny > > Puppet defines: > > > https://github.com/example42/puppet-tp/commit/78222a8e12542d0203b2bc600b7984fbf555a488 > > > the main advantages I've seen, for this use case, is the neater and more > > concise parameters validation, and, for the tp::install4 define > > ( > https://github.com/example42/puppet-tp/blob/master/manifests/install4.pp) > > , the ability to cope with arrays of packages and services. > > > > Another small change is the usage of the + operator on hashes instead of > > stdlib's merge(). > > There's probably more that can be done on them (any input or suggestions > > is welcomed) , but in particular I have a point I'd like to fix. > > > > When Parameters are undef by default I didn't find anything better than > > enforcing an "Any" type, which actually does not validate anything: > > > > definetp::conf4( > > String $ensure = present, > > > > Any $source = undef, > > Any $template = undef, > > Any $epp = undef, > > Any $content = undef, > > > > > > is there a concise way (without other verbose conditionals in the code) > > to validate a parameter type IF that parameter is passed when is undef > > by default? > > > Use the type Optional[T] to enforce either the type T, or undef. In your > example, say that $content must be a non empty string, or undef then you > could type it like this: > > Optional[String[1]] $content = undef > > Depending on what is accepted you can also use a Variant type with an > explicit Undef, this means the same thing as above: > > Variant[Undef, String[1]] $content = undef > > Hope that helps > > - henrik > > > Any help appreciated, > > al > > > > -- > > 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] <javascript:> > > <mailto:[email protected] <javascript:>>. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/puppet-users/66b016b6-0e1a-4623-9c1b-ab61ed179dcb%40googlegroups.com > > > < > https://groups.google.com/d/msgid/puppet-users/66b016b6-0e1a-4623-9c1b-ab61ed179dcb%40googlegroups..com?utm_medium=email&utm_source=footer>. > > > > For more options, visit https://groups.google.com/d/optout. > > > -- > > Visit my Blog "Puppet on the Edge" > http://puppet-on-the-edge.blogspot.se/ > >
-- 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/5da986ff-d477-4f3c-a6e0-5c794698a261%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
