class Teacher::TopLevel

Public Class Methods

new(*args) click to toggle source
Calls superclass method Teacher::Scope::new
# File lib/teacher/scope.rb, line 22
def initialize(*args)
  super

  self["min"] = Function.new(self) do |*arguments|
    arguments.min_by { |a| a.eval(self) }
  end

  self["sub"] = self["substitute"] = Function.new(self) do |target, origin|
    loop do
      target = target.eval(self)
      break if target.is_a?(Identifier)
    end
    @symbols[target.text_value] = origin.eval(self)
  end

  self["pub"] = self["publish"] = Function.new(self) do |identifier|
    @published_variables[identifier.text_value] = identifier.eval(self)
  end
end