It can also be asked as "is passing nil or undefined as the value of a class 
parameter the same as not specifying that class parameter at the point of use 
at all?" 

This way of phrasing it makes me think twice about this behavior, because it 
now means that you can't look just at the point of use to determine if you are 
going to be using the default value or not, now you need to take into account 
the data that is going to be present at compile time.

On May 1, 2012, at 9:16 PM, Dan Bode wrote:

> So, I dopped into the debugger with:
> 
>  $x = inline_template("<%= require 'ruby-debug';debugger;puts 'foo'  %>"
> 
> and realized that the value returned from the statement:
> 
> $var1_override = $override_hash['var1']
> 
> is actually nil.
> 
> So an easier version of my question is rather or not nil can be treated the 
> same as undefined in Puppet.
> 
> On Tue, May 1, 2012 at 9:06 PM, Dan Bode <[email protected]> wrote:
> Hi all,
> 
> I have run into an example where Puppet behaves exactly like I hoped it 
> would. I am a little concerned that it may just be a coincidence that it 
> happens to work like this. My question is rather or not the following is 
> specified behavior that I can take advantage of (I may take advantage of it 
> anyways, the question is actually rather I should be concerned about it 
> working in the future :) )
> 
> My use case:
> 
> Supposed I have a class that has parameters that have defaults specified:
> 
> class one(
>   $var1 = 'default1',
>   $var2 = 'default2'
> ) {
> 
>   notify { $var1: }
>   notify { $var2: }
> }
> 
> I want to call this class from another class, and that has a class parameter 
> that accepts a hash that is used to potentially override various parameters 
> from class 'one'
> 
> class two(
>   $override_hash = {}
> ) {
> 
>   $var1_override = $override_hash['var1']
> 
>   class { 'one':
>     var1 => $var1_override
>   }
> }
> 
> class { 'two': }
> 
> I was hoping that var1 from class one would not be overridden if the key var1 
> did not exist in the hash (I was hoping that it would be equivalent to 
> passing undef)
> 
> 
> And that is actually exactly how it worked.
> 
> Is that on purpose? I did not find anything about this in the documentation.
> 
> regards,
> 
> Dan
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/puppet-dev?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to