Module: GitCrecord

Defined in:
lib/git_crecord.rb,
lib/git_crecord/ui.rb,
lib/git_crecord/git.rb,
lib/git_crecord/diff.rb,
lib/git_crecord/logger.rb,
lib/git_crecord/version.rb,
lib/git_crecord/ui/color.rb,
lib/git_crecord/diff/file.rb,
lib/git_crecord/diff/hunk.rb,
lib/git_crecord/diff/line.rb,
lib/git_crecord/quit_action.rb,
lib/git_crecord/ui/help_window.rb,
lib/git_crecord/diff/difference.rb,
lib/git_crecord/ui/hunks_window.rb

Defined Under Namespace

Modules: Diff, Git, UI Classes: QuitAction

Constant Summary collapse

LOGGER =
Logger.new(File.new(File.join(ENV['HOME'], '.git-crecord.log'), 'w'))
VERSION =
'1.0.6'.freeze

Class Method Summary collapse

Class Method Details

.helpObject



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/git_crecord.rb', line 33

def self.help
  puts <<EOS
usage: git crecord [<options>]

--no-untracked-files  -- ignore untracked files
--version             -- show version information
-h                    -- this help message

in-program commands:
#{UI::HelpWindow::CONTENT.gsub(/^/, '  ')}
EOS
end

.main(argv) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/git_crecord.rb', line 8

def self.main(argv)
  if argv.include?('--version')
    puts VERSION
    true
  elsif argv.include?('--help') || argv.include?('-h')
    help
    true
  else
    run(with_untracked_files: !argv.include?('--no-untracked-files'))
  end
end

.run(with_untracked_files: false) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/git_crecord.rb', line 20

def self.run(with_untracked_files: false)
  toplevel_dir = Git.toplevel_dir
  return false if toplevel_dir.empty?
  Dir.chdir(toplevel_dir) do
    files = Diff.parse(Git.diff)
    files.concat(Diff.untracked_files(Git.status)) if with_untracked_files
    return false if files.empty?
    result = UI.run(files)
    return result.call == true if result.respond_to?(:call)
    true
  end
end