# File lib/puppet/parser/ast/boolean_operator.rb, line 16 16: def evaluate(scope) 17: # evaluate the first operand, should return a boolean value 18: lval = @lval.safeevaluate(scope) 19: 20: # return result 21: # lazy evaluate right operand 22: case @operator 23: when "and"; 24: if Puppet::Parser::Scope.true?(lval) 25: rval = @rval.safeevaluate(scope) 26: Puppet::Parser::Scope.true?(rval) 27: else # false and false == false 28: false 29: end 30: when "or"; 31: if Puppet::Parser::Scope.true?(lval) 32: true 33: else 34: rval = @rval.safeevaluate(scope) 35: Puppet::Parser::Scope.true?(rval) 36: end 37: end 38: end