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]
<mailto:[email protected]>.
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/mgdl91%24clq%241%40ger.gmane.org.
For more options, visit https://groups.google.com/d/optout.