diff options
Diffstat (limited to 'lib/puppet/parser/ast/else.rb')
-rw-r--r-- | lib/puppet/parser/ast/else.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/puppet/parser/ast/else.rb b/lib/puppet/parser/ast/else.rb new file mode 100644 index 000000000..a29623f56 --- /dev/null +++ b/lib/puppet/parser/ast/else.rb @@ -0,0 +1,26 @@ +class Puppet::Parser::AST + # A separate ElseIf statement; can function as an 'else' if there's no + # test. + class Else < AST::Branch + attr_accessor :statements + + def each + yield @statements + end + + # Evaluate the actual statements; this only gets called if + # our test was true matched. + def evaluate(hash) + scope = hash[:scope] + return @statements.safeevaluate(:scope => scope) + end + + def tree(indent = 0) + rettree = [ + ((@@indline * indent) + self.typewrap(self.pin)), + @statements.tree(indent + 1) + ] + return rettree.flatten.join("\n") + end + end +end |