Class: BigKeeper::StashService

Inherits:
Object
  • Object
show all
Defined in:
lib/big_keeper/service/stash_service.rb

Overview

Operator for got

Instance Method Summary collapse

Instance Method Details

#pop_stash(path, branch_name, name) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/big_keeper/service/stash_service.rb', line 9

def pop_stash(path, branch_name, name)
  # pop stash
  if BigStash::StashOperator.new(path).stash_for_name(branch_name)
    Logger.highlight(%Q(Branch '#{branch_name}' of '#{name}' has stash , start to pop...))
    BigStash::StashOperator.new(path).pop_stash(branch_name)
  end
end

#stash(path, branch_name, name) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/big_keeper/service/stash_service.rb', line 17

def stash(path, branch_name, name)
  # stash
  if GitOperator.new.has_changes(path)
    Logger.highlight(%Q(Branch '#{branch_name}' of '#{name}' needs stash , start to stash...))
    BigStash::StashOperator.new(path).stash(branch_name)
  end
end

#stash_all(path, new_branch_name, user, modules) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/big_keeper/service/stash_service.rb', line 25

def stash_all(path, new_branch_name, user, modules)
  # Stash modules
  Logger.highlight('Stash for current workspace...')

  modules.each do |module_name|
    module_path = BigkeeperParser.module_full_path(path, user, module_name)
    branch_name = GitOperator.new.current_branch(module_path)

    if branch_name != new_branch_name
      stash(module_path, branch_name, module_name)
    end
  end

  # Stash home
  branch_name = GitOperator.new.current_branch(path)
  if branch_name != new_branch_name
    stash(path, branch_name, 'Home')
  end
end