Object
 
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 10
def self.empty
  new(path: [], absolute: false)
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 5
def initialize(path,, absolute))
  @path = path
  @absolute = absolute
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 18
def +(other)
  if other.absolute?
    other
  else
    self.class.new(path: path + other.path, absolute: absolute?)
  end
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 55
def ==(other)
  other.is_a?(Namespace) && other.path == path && other.absolute? == absolute?
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 43
def absolute!
  self.class.new(path: path, absolute: true)
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 35
def absolute?
  @absolute
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 26
def append(component)
  self.class.new(path: path + [component], absolute: absolute?)
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 97
def ascend
  if block_given?
    current = self
    until current.empty?
      yield current
      current = _ = current.parent
    end
    yield current
    self
  else
    enum_for(:ascend)
  end
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 51
def empty?
  path.empty?
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 61
def hash
  self.class.hash ^ path.hash ^ absolute?.hash
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 30
def parent
  raise "Parent with empty namespace" if empty?
  self.class.new(path: path.take(path.size - 1), absolute: absolute?)
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 47
def relative!
  self.class.new(path: path, absolute: false)
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 39
def relative?
  !absolute?
end
             
             
               # File rbs-2.1.0/lib/rbs/namespace.rb, line 65
def split
  last = path.last or return
  parent = self.parent
  [parent, last]
end