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.

Reply via email to