# File lib/puppet/parser/ast/casestatement.rb, line 13
13:         def evaluate(scope)
14:             value = @test.safeevaluate(scope)
15:             sensitive = Puppet[:casesensitive]
16:             value = value.downcase if ! sensitive and value.respond_to?(:downcase)
17: 
18:             retvalue = nil
19:             found = false
20: 
21:             # Iterate across the options looking for a match.
22:             default = nil
23:             @options.each do |option|
24:                 option.eachopt do |opt|
25:                     return option.safeevaluate(scope) if opt.evaluate_match(value, scope, :file => file, :line => line, :sensitive => sensitive)
26:                 end
27: 
28:                 default = option if option.default?
29:             end
30: 
31:             # Unless we found something, look for the default.
32:             return default.safeevaluate(scope) if default
33: 
34:             Puppet.debug "No true answers and no default"
35:             return nil
36:         ensure
37:             scope.unset_ephemeral_var
38:         end