class GitCompound::Worker::LocalChangesGuard
Worker
that defends local changes in component repositories
Public Class Methods
new(lock)
click to toggle source
# File lib/git_compound/worker/local_changes_guard.rb, line 7 def initialize(lock) @lock = lock end
Public Instance Methods
visit_component(component)
click to toggle source
# File lib/git_compound/worker/local_changes_guard.rb, line 11 def visit_component(component) return unless component.exists? @component = component @repository = component.repository check_uncommited_changes! check_untracked_files! end
Private Instance Methods
check_uncommited_changes!()
click to toggle source
# File lib/git_compound/worker/local_changes_guard.rb, line 23 def check_uncommited_changes! return unless @repository.uncommited_changes? raise LocalChangesError, "Component `#{@component.name}` contains uncommited changes !" end
check_untracked_files!()
click to toggle source
# File lib/git_compound/worker/local_changes_guard.rb, line 30 def check_untracked_files! return unless @repository.untracked_files?(subcomponents_dirs) raise LocalChangesError, "Component `#{@component.name}` contains untracked files !" end
subcomponents_dirs()
click to toggle source
# File lib/git_compound/worker/local_changes_guard.rb, line 37 def subcomponents_dirs locked_dirs = @lock.components.map { |locked| "#{locked.path}".chop } component_subdirs = locked_dirs.select do |locked_dir| locked_dir.start_with?(@component.path) end component_subdirs.collect do |subdir| subdir.sub(/^#{@component.path}/, '').split(File::SEPARATOR).first end end