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

[Source]

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

Public Instance methods

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 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

[Source]

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

[Source]

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

[Validate]