diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-02-27 21:31:02 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-02-27 21:31:02 +0000 |
commit | 87f100aa6ffc3087028a956ab73e19daf8f27f52 (patch) | |
tree | 9241a749173e1b437bf1c3b8bea51488e7f7dcfe /lib/puppet/parser/ast | |
parent | a3f36748528ea760b5965f972941c6022d0449e9 (diff) | |
download | puppet-87f100aa6ffc3087028a956ab73e19daf8f27f52.tar.gz puppet-87f100aa6ffc3087028a956ab73e19daf8f27f52.tar.xz puppet-87f100aa6ffc3087028a956ab73e19daf8f27f52.zip |
Applying patch by DavidS from #522, along with test code and a small bit of code cleanup.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2231 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/parser/ast')
-rw-r--r-- | lib/puppet/parser/ast/caseopt.rb | 14 | ||||
-rw-r--r-- | lib/puppet/parser/ast/casestatement.rb | 17 |
2 files changed, 13 insertions, 18 deletions
diff --git a/lib/puppet/parser/ast/caseopt.rb b/lib/puppet/parser/ast/caseopt.rb index 1c712e896..8d578a10b 100644 --- a/lib/puppet/parser/ast/caseopt.rb +++ b/lib/puppet/parser/ast/caseopt.rb @@ -44,18 +44,10 @@ class Puppet::Parser::AST def eachvalue(scope) if @value.is_a?(AST::ASTArray) @value.each { |subval| - if scope - yield subval.evaluate(:scope => scope) - elsif subval.is_a? AST::Leaf - yield subval.value - end + yield subval.evaluate(:scope => scope) } else - if scope - yield @value.evaluate(:scope => scope) - elsif @value.is_a? AST::Leaf - yield @value.value - end + yield @value.evaluate(:scope => scope) end end @@ -76,3 +68,5 @@ class Puppet::Parser::AST end end end + +# $Id$ diff --git a/lib/puppet/parser/ast/casestatement.rb b/lib/puppet/parser/ast/casestatement.rb index b4197d9b4..760a1095c 100644 --- a/lib/puppet/parser/ast/casestatement.rb +++ b/lib/puppet/parser/ast/casestatement.rb @@ -19,16 +19,17 @@ class Puppet::Parser::AST # Iterate across the options looking for a match. @options.each { |option| - if option.eachvalue(scope) { |opval| - opval = opval.downcase if ! sensitive and opval.respond_to?(:downcase) - # break true if opval == value - if opval == value - break true - end - } + option.eachvalue(scope) { |opval| + opval = opval.downcase if ! sensitive and opval.respond_to?(:downcase) + if opval == value + found = true + break + end + } + + if found # we found a matching option retvalue = option.safeevaluate(:scope => scope) - found = true break end } |