Class: Puppet::Parser::AST::BlockExpression

Inherits:
Branch show all
Includes:
Enumerable
Defined in:
lib/puppet/parser/ast/block_expression.rb

Direct Known Subclasses

Lambda

Instance Attribute Summary

Attributes inherited from Branch

#children, #pin

Instance Method Summary collapse

Methods inherited from Branch

#each, #initialize

Constructor Details

This class inherits a constructor from Puppet::Parser::AST::Branch

Instance Method Details

#[](index) ⇒ Object

Return a child by index.



17
18
19
# File 'lib/puppet/parser/ast/block_expression.rb', line 17

def [](index)
  @children[index]
end

#evaluate(scope) ⇒ Object

Evaluate contained expressions, produce result of the last



8
9
10
11
12
13
14
# File 'lib/puppet/parser/ast/block_expression.rb', line 8

def evaluate(scope)
  result = nil
  @children.each do |child|
    result = child.safeevaluate(scope)
  end
  result
end

#push(*ary) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/puppet/parser/ast/block_expression.rb', line 21

def push(*ary)
  ary.each { |child|
    #Puppet.debug "adding %s(%s) of type %s to %s" %
    #    [child, child.object_id, child.class.to_s.sub(/.+::/,''),
    #    self.object_id]
    @children.push(child)
  }

  self
end

#sequence_with(other) ⇒ Object



32
33
34
# File 'lib/puppet/parser/ast/block_expression.rb', line 32

def sequence_with(other)
  Puppet::Parser::AST::BlockExpression.new(:children => self.children + other.children)
end

#to_sObject



36
37
38
# File 'lib/puppet/parser/ast/block_expression.rb', line 36

def to_s
  "[" + @children.collect { |c| c.to_s }.join(', ') + "]"
end