summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/ast
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-02-27 21:31:02 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-02-27 21:31:02 +0000
commit87f100aa6ffc3087028a956ab73e19daf8f27f52 (patch)
tree9241a749173e1b437bf1c3b8bea51488e7f7dcfe /lib/puppet/parser/ast
parenta3f36748528ea760b5965f972941c6022d0449e9 (diff)
downloadpuppet-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.rb14
-rw-r--r--lib/puppet/parser/ast/casestatement.rb17
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
}