Parent

SexpProcessor::Environment

I really hate this here, but I hate subdirs in my lib dir more… I guess it is kinda like shaving… I’ll split this out when it itches too much…

Public Class Methods

new() click to toggle source
# File lib/sexp_processor.rb, line 332
def initialize
  @env = []
  @env.unshift({})
end

Public Instance Methods

[](name) click to toggle source

TODO: depth_of

# File lib/sexp_processor.rb, line 347
def [] name
  hash = @env.find { |closure| closure.has_key? name }
  hash[name] if hash
end
[]=(name, val) click to toggle source
# File lib/sexp_processor.rb, line 352
def []= name, val
  hash = @env.find { |closure| closure.has_key? name } || @env.first
  hash[name] = val
end
all() click to toggle source
# File lib/sexp_processor.rb, line 337
def all
  @env.reverse.inject { |env, scope| env.merge scope }
end
depth() click to toggle source
# File lib/sexp_processor.rb, line 341
def depth
  @env.length
end
scope() click to toggle source
# File lib/sexp_processor.rb, line 357
def scope
  @env.unshift({})
  begin
    yield
  ensure
    @env.shift
    raise "You went too far unextending env" if @env.empty?
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.