Sha256: 2251eefb7e7c5b6f35e290b6c72579a4ce2258525c372023f29abb0d77b5face

Contents?: true

Size: 746 Bytes

Versions: 17

Compression:

Stored size: 746 Bytes

Contents

require 'puppet/parser/ast/branch'

class Puppet::Parser::AST
  # Define a variable.  Stores the value in the current scope.
  class VarDef < AST::Branch

    associates_doc

    attr_accessor :name, :value, :append

    # Look up our name and value, and store them appropriately.  The
    # lexer strips off the syntax stuff like '$'.
    def evaluate(scope)
      value = @value.safeevaluate(scope)
      if name.is_a?(HashOrArrayAccess)
        name.assign(scope, value)
      else
        name = @name.safeevaluate(scope)

        parsewrap do
          scope.setvar(name,value, :file => file, :line => line, :append => @append)
        end
      end
    end

    def each
      [@name,@value].each { |child| yield child }
    end
  end

end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
librarian-puppet-0.9.9 vendor/gems/ruby/1.9.1/gems/puppet-3.1.0/lib/puppet/parser/ast/vardef.rb
puppet-3.1.1 lib/puppet/parser/ast/vardef.rb
librarian-puppet-0.9.8 vendor/gems/ruby/1.9.1/gems/puppet-3.1.0/lib/puppet/parser/ast/vardef.rb
puppet-3.1.0 lib/puppet/parser/ast/vardef.rb
puppet-3.1.0.rc2 lib/puppet/parser/ast/vardef.rb
puppet-3.1.0.rc1 lib/puppet/parser/ast/vardef.rb
puppet-3.0.2 lib/puppet/parser/ast/vardef.rb
puppet-3.0.2.rc3 lib/puppet/parser/ast/vardef.rb
puppet-3.0.2.rc2 lib/puppet/parser/ast/vardef.rb
puppet-3.0.2.rc1 lib/puppet/parser/ast/vardef.rb
puppet-3.0.1 lib/puppet/parser/ast/vardef.rb
puppet-3.0.1.rc1 lib/puppet/parser/ast/vardef.rb
puppet-3.0.0 lib/puppet/parser/ast/vardef.rb
puppet-3.0.0.rc8 lib/puppet/parser/ast/vardef.rb
puppet-3.0.0.rc7 lib/puppet/parser/ast/vardef.rb
puppet-3.0.0.rc5 lib/puppet/parser/ast/vardef.rb
puppet-3.0.0.rc4 lib/puppet/parser/ast/vardef.rb