Class: Gitit::GitStatus

Inherits:
Object
  • Object
show all
Includes:
GitExecutor
Defined in:
lib/gitit/git_status.rb

Overview



Instance Attribute Summary

Attributes included from GitExecutor

#repo

Instance Method Summary collapse

Methods included from GitExecutor

#execute_command, repo

Constructor Details

#initialize(repo) ⇒ GitStatus





12
13
14
# File 'lib/gitit/git_status.rb', line 12

def initialize(repo)
  @repo = repo
end

Instance Method Details

#clean?Boolean



Returns:

  • (Boolean)


18
19
20
# File 'lib/gitit/git_status.rb', line 18

def clean?
  !unstaged_files? && !uncommited_files? && !untracked_files?
end

#uncommited_files?Boolean



Returns:

  • (Boolean)


31
32
33
34
# File 'lib/gitit/git_status.rb', line 31

def uncommited_files?
  execute_command('diff --cached --no-ext-diff --ignore-submodules --quiet --exit-code')
  $?.exitstatus == 1
end

#unstaged_files?Boolean



Returns:

  • (Boolean)


24
25
26
27
# File 'lib/gitit/git_status.rb', line 24

def unstaged_files?
  execute_command('diff-files --name-status --diff-filter=M --exit-code')
  $?.exitstatus == 1
end

#untracked_files?Boolean



Returns:

  • (Boolean)


38
39
40
41
42
43
44
45
# File 'lib/gitit/git_status.rb', line 38

def untracked_files?
  # execute_command('status --porcelain | grep ??')
  # $?.exitstatus == 0

  result = execute_command('status --porcelain')
  match = result.each_line.select { |b| b.start_with? '?? ' }
  match.length > 0
end