Module: KKGit::GitRunner
- Defined in:
- lib/kk/git/git_runner.rb
Overview
Shared git subprocess helper for CommitMessage and GitOps.
Class Method Summary collapse
- .capture(args, repo_dir: '.') ⇒ Object
- .capture!(args, repo_dir: '.') ⇒ Object
- .normalize_utf8(str) ⇒ Object
Class Method Details
.capture(args, repo_dir: '.') ⇒ Object
10 11 12 13 |
# File 'lib/kk/git/git_runner.rb', line 10 def capture(args, repo_dir: '.') stdout, stderr, status = Open3.capture3('git', *args, chdir: repo_dir) [normalize_utf8(stdout), normalize_utf8(stderr), status.success?] end |
.capture!(args, repo_dir: '.') ⇒ Object
15 16 17 18 19 20 |
# File 'lib/kk/git/git_runner.rb', line 15 def capture!(args, repo_dir: '.') stdout, stderr, ok = capture(args, repo_dir: repo_dir) raise "git #{args.join(' ')} failed: #{stderr.strip}" unless ok stdout end |
.normalize_utf8(str) ⇒ Object
22 23 24 |
# File 'lib/kk/git/git_runner.rb', line 22 def normalize_utf8(str) str.to_s.encode(Encoding::UTF_8, invalid: :replace, undef: :replace, replace: "\uFFFD") end |