Class: Giblish::GitItf
- Inherits:
-
Object
- Object
- Giblish::GitItf
- Defined in:
- lib/giblish/gititf.rb
Overview
A home-grown interface class to git. Used for situations when the ‘official’ ruby git gem does not support an operation that is needed.
Instance Attribute Summary collapse
-
#git_dir ⇒ Object
readonly
Returns the value of attribute git_dir.
-
#repo_root ⇒ Object
readonly
Returns the value of attribute repo_root.
Instance Method Summary collapse
-
#file_log(filename) ⇒ Object
Get the log history of the supplied file as an array of hashes, each entry has keys: sha date author email parent message.
-
#initialize(path) ⇒ GitItf
constructor
A new instance of GitItf.
Constructor Details
#initialize(path) ⇒ GitItf
Returns a new instance of GitItf.
10 11 12 13 14 15 |
# File 'lib/giblish/gititf.rb', line 10 def initialize(path) @repo_root = Giblish::PathManager.find_gitrepo_root(path) raise ArgumentError("The path: @{path} is not within a git repo!") if @repo_root.nil? @git_dir = @repo_root / ".git" end |
Instance Attribute Details
#git_dir ⇒ Object (readonly)
Returns the value of attribute git_dir.
8 9 10 |
# File 'lib/giblish/gititf.rb', line 8 def git_dir @git_dir end |
#repo_root ⇒ Object (readonly)
Returns the value of attribute repo_root.
8 9 10 |
# File 'lib/giblish/gititf.rb', line 8 def repo_root @repo_root end |
Instance Method Details
#file_log(filename) ⇒ Object
Get the log history of the supplied file as an array of hashes, each entry has keys: sha date author email parent message
25 26 27 28 29 30 |
# File 'lib/giblish/gititf.rb', line 25 def file_log(filename) o, e, s = exec_cmd("log", %w[--follow --date=iso --], "'#{filename}'") raise "Failed to get git log for #{filename}!!\n#{e}" if s.exitstatus != 0 process_log_output(o) end |