class Orbacle::Scope

Attributes

elems[R]

Public Class Methods

empty() click to toggle source
# File lib/orbacle/scope.rb, line 5
def self.empty
  new([], false)
end
new(elems, is_eigenclass) click to toggle source
# File lib/orbacle/scope.rb, line 9
def initialize(elems, is_eigenclass)
  @elems = elems
  @is_eigenclass = is_eigenclass
end

Public Instance Methods

==(other) click to toggle source
# File lib/orbacle/scope.rb, line 51
def ==(other)
  @elems == other.elems && eigenclass? == other.eigenclass?
end
absolute_str() click to toggle source
# File lib/orbacle/scope.rb, line 43
def absolute_str
  elems.join("::")
end
decrease() click to toggle source
# File lib/orbacle/scope.rb, line 29
def decrease
  if eigenclass?
    Scope.new(elems, false)
  elsif elems.empty?
    raise
  else
    Scope.new(elems[0..-2], false)
  end
end
eigenclass?() click to toggle source
# File lib/orbacle/scope.rb, line 47
def eigenclass?
  @is_eigenclass
end
empty?() click to toggle source
# File lib/orbacle/scope.rb, line 39
def empty?
  elems.empty?
end
increase_by_eigenclass() click to toggle source
# File lib/orbacle/scope.rb, line 24
def increase_by_eigenclass
  raise if eigenclass?
  Scope.new(elems, true)
end
increase_by_ref(const_ref) click to toggle source
# File lib/orbacle/scope.rb, line 16
def increase_by_ref(const_ref)
  if const_ref.absolute?
    Scope.new(const_ref.const_name.elems, false)
  else
    Scope.new(elems + const_ref.const_name.elems, eigenclass?)
  end
end
to_const_name() click to toggle source
# File lib/orbacle/scope.rb, line 59
def to_const_name
  ConstName.new(elems)
end
to_s() click to toggle source
# File lib/orbacle/scope.rb, line 55
def to_s
  absolute_str
end