class Delfos::FileSystem::DistanceCalculation::TraversalPathCalculator::Result

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/delfos/file_system/distance_calculation.rb, line 87
def initialize(*args)
  super
  @in_parent = false
end

Public Instance Methods

process(i) click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 92
def process(i)
  if @in_parent
    @in_parent = false
    remove_parent(i)
  else
    add_item(i)
  end
end

Private Instance Methods

add_item(i) click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 103
def add_item(i)
  @in_parent = ((last && last + "..") == i)
  push i
end
remove_parent(i) click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 108
def remove_parent(i)
  return unless same_dir?(i)

  pop
  push(i)
end
same_dir?(i) click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 115
def same_dir?(i)
  self[-2] && self[-2].dirname == i.dirname
end