class Environment

Attributes

defaults[R]
parent[R]

Public Class Methods

new(parent=nil, defaults={}) click to toggle source
# File lib/forsta/environment.rb, line 4
def initialize(parent=nil, defaults={})
  @parent = parent
  @defaults = defaults
end

Public Instance Methods

define(symbol, value) click to toggle source
# File lib/forsta/environment.rb, line 9
def define(symbol, value)
  defaults[symbol] = value
end
defined?(symbol) click to toggle source
# File lib/forsta/environment.rb, line 13
def defined?(symbol)
  defaults.has_key?(symbol) || (parent && parent.defined?(symbol))
end
lookup(symbol) click to toggle source
# File lib/forsta/environment.rb, line 17
def lookup(symbol)
  defaults[symbol] || (parent && parent.lookup(symbol)) ||
    raise("#{symbol} is undefined")
end
set(symbol, value) click to toggle source
# File lib/forsta/environment.rb, line 22
def set(symbol, value)
  if defaults.has_key?(symbol)
    defaults[symbol] = value
  elsif parent.nil?
    raise("#{symbol} was undefined")
  else
    parent.set(symbol, value)
  end
end