class Delfos::FileSystem::DistanceCalculation
Attributes
path_a[R]
path_b[R]
traversal_a[R]
traversal_b[R]
Public Class Methods
new(path_a, path_b)
click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 10 def initialize(path_a, path_b) @path_a, @path_b = PathDetermination.for(path_a, path_b) end
Public Instance Methods
klass_for(a, b)
click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 28 def klass_for(a, b) return ChildFile if b + ".." == a Relation end
sibling_directories(path)
click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 41 def sibling_directories(path) siblings(path).select { |f| File.directory?(f) } end
sum_possible_traversals()
click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 37 def sum_possible_traversals traversals.inject(0) { |a, e| a + e.possible_length } end
sum_traversals()
click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 33 def sum_traversals traversals.inject(0) { |a, e| a + e.distance } end
traversal_path()
click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 45 def traversal_path TraversalPathCalculator.new(path_a, path_b).path end
traversals()
click to toggle source
# File lib/delfos/file_system/distance_calculation.rb, line 16 def traversals result = [] path = traversal_path path.each_cons(2) do |start, finish| klass = klass_for(start, finish) result.push(klass.new(start, finish)) end result end