class Motion::RevisionCalculator
Attributes
revision_paths[R]
Public Class Methods
new(revision_paths:)
click to toggle source
# File lib/motion/revision_calculator.rb, line 10 def initialize(revision_paths:) @revision_paths = revision_paths end
Public Instance Methods
perform()
click to toggle source
# File lib/motion/revision_calculator.rb, line 14 def perform derive_file_hash end
Private Instance Methods
derive_file_hash()
click to toggle source
# File lib/motion/revision_calculator.rb, line 20 def derive_file_hash digest = Digest::MD5.new files.each do |file| digest << file # include filename as well as contents digest << File.read(file) end digest.hexdigest end
existent_files(path)
click to toggle source
# File lib/motion/revision_calculator.rb, line 40 def existent_files(path) Dir["#{path}/**/*", path].reject { |f| File.directory?(f) }.uniq end
existent_paths()
click to toggle source
# File lib/motion/revision_calculator.rb, line 31 def existent_paths @existent_paths ||= begin revision_paths.all_paths.flat_map(&:existent) rescue raise BadRevisionPathsError end end
files()
click to toggle source
# File lib/motion/revision_calculator.rb, line 44 def files @files ||= existent_paths.flat_map { |path| existent_files(path) }.sort end