Sha256: 6a63e33f666991a7eb682cc291a83227cb0e625e1ae0d16bb5db6b62f1911ff8

Contents?: true

Size: 1.47 KB

Versions: 6

Compression:

Stored size: 1.47 KB

Contents

require 'puppet'
require 'puppet/parser/ast/branch'
require 'puppet/parser/collector'

# An object that collects stored objects from the central cache and returns
# them to the current host, yo.
class Puppet::Parser::AST
class Collection < AST::Branch
    attr_accessor :type, :query, :form
    attr_reader :override

    associates_doc

    # We return an object that does a late-binding evaluation.
    def evaluate(scope)
        if self.query
            str, code = self.query.safeevaluate scope
        else
            str = code = nil
        end

        newcoll = Puppet::Parser::Collector.new(scope, @type, str, code, self.form)

        scope.compiler.add_collection(newcoll)

        # overrides if any
        # Evaluate all of the specified params.
        if @override
            params = @override.collect do |param|
                param.safeevaluate(scope)
            end

            newcoll.add_override(
                :params => params,
                :file => @file,
                :line => @line,
                :source => scope.source,
                :scope => scope
            )
        end

        newcoll
    end

    # Handle our parameter ourselves
    def override=(override)
        if override.is_a?(AST::ASTArray)
            @override = override
        else
            @override = AST::ASTArray.new(
                :line => override.line,
                :file => override.file,
                :children => [override]
            )
        end
    end

end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
puppet-0.25.5 lib/puppet/parser/ast/collection.rb
puppet-0.25.4 lib/puppet/parser/ast/collection.rb
puppet-0.25.3 lib/puppet/parser/ast/collection.rb
puppet-0.25.2 lib/puppet/parser/ast/collection.rb
puppet-0.25.1 lib/puppet/parser/ast/collection.rb
puppet-0.25.0 lib/puppet/parser/ast/collection.rb