On Wed, May 2, 2012 at 9:11 AM, Andrew Parker <[email protected]> wrote:

> 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?"
>

I am pretty sure that this behavior as it relates to undef is already
specified behavior in Puppet.


> 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.
>

-- 
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