In Files

  • rdoc/template.rb

Files

Class/Module Index [+]

Quicksearch

TemplatePage::Context

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)

Public Class Methods

new() click to toggle source
 
               # File rdoc/template.rb, line 47
def initialize
  @stack = []
end
            

Public Instance Methods

find_scalar(key) click to toggle source

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

 
               # 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) click to toggle source

Lookup any key in the stack of hashes

 
               # 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() click to toggle source
 
               # File rdoc/template.rb, line 55
def pop
  @stack.pop
end
            
push(hash) click to toggle source
 
               # File rdoc/template.rb, line 51
def push(hash)
  @stack.push(hash)
end