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