class Fable::Pointer

Attributes

container[RW]
index[RW]

Public Class Methods

new(container, index) click to toggle source
# File lib/fable/pointer.rb, line 13
def initialize(container, index)
  self.container = container
  self.index = index
end
null_pointer() click to toggle source
# File lib/fable/pointer.rb, line 9
def self.null_pointer
  self.new(nil, -1)
end
start_of(container) click to toggle source
# File lib/fable/pointer.rb, line 5
def self.start_of(container)
  self.new(container, 0)
end

Public Instance Methods

clone() click to toggle source
# File lib/fable/pointer.rb, line 25
def clone
  self.class.new(self.container, self.index)
end
null_pointer?() click to toggle source
# File lib/fable/pointer.rb, line 29
def null_pointer?
  container.nil?
end
path() click to toggle source
# File lib/fable/pointer.rb, line 33
def path
  return nil if null_pointer?
  if index > 0
    return container.path.path_by_appending_component(index)
  else
    return container.path
  end
end
resolve!() click to toggle source
# File lib/fable/pointer.rb, line 18
def resolve!
  return container if index < 0
  return nil if container.nil?
  return container if container.content.empty?
  return container.content[index]
end