class Hocon::Impl::ResolveSource::Node

a persistent list

Attributes

next_node[R]
value[R]

Public Class Methods

new(value, next_node = nil) click to toggle source
# File lib/hocon/impl/resolve_source.rb, line 199
def initialize(value, next_node = nil)
  @value = value
  @next_node = next_node
end

Public Instance Methods

head() click to toggle source
# File lib/hocon/impl/resolve_source.rb, line 208
def head
  @value
end
last() click to toggle source
# File lib/hocon/impl/resolve_source.rb, line 216
def last
  i = self
  while i.next_node != nil
    i = i.next_node
  end
  i.value
end
prepend(value) click to toggle source
# File lib/hocon/impl/resolve_source.rb, line 204
def prepend(value)
  Node.new(value, self)
end
reverse() click to toggle source
# File lib/hocon/impl/resolve_source.rb, line 224
def reverse
  if @next_node == nil
    self
  else
    reversed = Node.new(@value)
    i = @next_node
    while i != nil
      reversed = reversed.prepend(i.value)
      i = i.next_node
    end
    reversed
  end
end
tail() click to toggle source
# File lib/hocon/impl/resolve_source.rb, line 212
def tail
  @next_node
end
to_s() click to toggle source
# File lib/hocon/impl/resolve_source.rb, line 238
def to_s
  sb = ""
  sb << "["
  to_append_value = self.reverse
  while to_append_value != nil
    sb << to_append_value.value.to_s
    if to_append_value.next_node != nil
      sb << " <= "
    end
    to_append_value = to_append_value.next_node
  end
  sb << "]"
  sb
end