A basic ‘if/elsif/else’ statement.
# File lib/puppet/parser/ast/ifstatement.rb, line 11 def each [@test,@else,@statements].each { |child| yield child } end
Short-curcuit evaluation. If we’re true, evaluate our statements, else if there’s an ‘else’ setting, evaluate it. the first option that matches.
# File lib/puppet/parser/ast/ifstatement.rb, line 18 def evaluate(scope) level = scope.ephemeral_level value = @test.safeevaluate(scope) # let's emulate a new scope for each branches begin if Puppet::Parser::Scope.true?(value) return @statements.safeevaluate(scope) else return defined?(@else) ? @else.safeevaluate(scope) : nil end ensure scope.unset_ephemeral_var(level) end end