Class | TemplatePage::Context
In: | rdoc/template.rb
Parent: | Object

A context holds a stack of key/value pairs (like a symbol table). When asked to resolve a key, it first searches the top of the stack, then the next level, and so on until it finds a match (or runs out of entries)

### Methods

find_scalar lookup new pop push

### Public Class methods

new()

[Source]

    # File rdoc/template.rb, line 47
        def initialize
          @stack = []
        end

### Public Instance methods

find_scalar(key)

Find a scalar value, throwing an exception if not found. This method is used when substituting the %xxx% constructs

[Source]

    # File rdoc/template.rb, line 62
        def find_scalar(key)
          @stack.reverse_each do |level|
            if val = level[key]
              return val unless val.kind_of? Array
            end
          end
          raise "Template error: can't find variable '#{key}'"
        end

lookup(key)

Lookup any key in the stack of hashes

[Source]

    # File rdoc/template.rb, line 73
        def lookup(key)
          @stack.reverse_each do |level|
            val = level[key]
            return val if val
          end
          nil
        end

pop()

[Source]

    # File rdoc/template.rb, line 55
        def pop
          @stack.pop
        end

push(hash)

[Source]

    # File rdoc/template.rb, line 51
        def push(hash)
          @stack.push(hash)
        end

[Validate]