Sha256: 52781db491c106eafaa22c24e854ea50a86dc47c90c3d1ebb612e1f4ece818c1
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 KB
Contents
module GitCompound module Worker # Worker that defends local changes in # component repositories # class LocalChangesGuard < Worker def initialize(lock) @lock = lock end def visit_component(component) @component = component @repository = component.repository check_uncommited_changes! check_untracked_files! end private def check_uncommited_changes! return unless @repository.uncommited_changes? raise LocalChangesError, "Component `#{@component.name}` contains uncommited changes !" end def check_untracked_files! return unless @repository.untracked_files?(subcomponents_dirs) raise LocalChangesError, "Component `#{@component.name}` contains untracked files !" end 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 end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
git_compound-0.1.0 | lib/git_compound/worker/local_changes_guard.rb |
git_compound-0.0.10 | lib/git_compound/worker/local_changes_guard.rb |