Class: Puppet::Parser::Scope::Ephemeral

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/puppet/parser/scope.rb

Overview

thin wrapper around an ephemeral symbol table. when a symbol

Instance Method Summary collapse

Constructor Details

#initialize(parent = nil, local = false) ⇒ Ephemeral

Returns a new instance of Ephemeral.



45
46
47
48
49
# File 'lib/puppet/parser/scope.rb', line 45

def initialize(parent=nil, local=false)
  @symbols = {}
  @parent = parent
  @local_scope = local
end

Instance Method Details

#[](name) ⇒ Object



53
54
55
56
57
58
59
# File 'lib/puppet/parser/scope.rb', line 53

def [](name)
  if @symbols.include?(name) or @parent.nil?
    @symbols[name]
  else
    @parent[name]
  end
end

#add_entries_to(target = {}) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/puppet/parser/scope.rb', line 78

def add_entries_to(target = {})
  @parent.add_entries_to(target) unless @parent.nil?
  # do not return pure ephemeral ($0-$n)
  if is_local_scope?
    @symbols.each do |k, v|
      if v == :undef
        target.delete(k)
      else
        target[ k ] = v
      end
    end
  end
  target
end

#bound?(name) ⇒ Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/puppet/parser/scope.rb', line 65

def bound?(name)
  @symbols.include?(name)
end

#include?(name) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/puppet/parser/scope.rb', line 61

def include?(name)
  bound?(name) or (@parent and @parent.include?(name))
end

#is_local_scope?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/puppet/parser/scope.rb', line 69

def is_local_scope?
  @local_scope
end

#parentEphemeral, ...

Returns:



74
75
76
# File 'lib/puppet/parser/scope.rb', line 74

def parent
  @parent
end