Class: Bob::SCM::Git

Inherits:
Abstract show all
Defined in:
lib/bob/scm/git.rb

Instance Attribute Summary

Attributes inherited from Abstract

#branch, #uri

Instance Method Summary collapse

Methods inherited from Abstract

#directory_for, #with_commit

Constructor Details

#initialize(uri, branch) ⇒ Git

Returns a new instance of Git.



4
5
6
7
8
9
10
# File 'lib/bob/scm/git.rb', line 4

def initialize(uri, branch)
  super

  unless File.directory?(File.join(Bob.directory, "cache"))
    FileUtils.mkdir(File.join(Bob.directory, "cache"))
  end
end

Instance Method Details

#headObject



19
20
21
# File 'lib/bob/scm/git.rb', line 19

def head
  `git ls-remote --heads #{uri} #{branch} | cut -f1`.chomp
end

#info(commit) ⇒ Object



12
13
14
15
16
17
# File 'lib/bob/scm/git.rb', line 12

def info(commit)
  format = %Q(---%n:author: %an <%ae>%n:message: >-%n  %s%n:committed_at: %ci%n)
  YAML.load(`cd #{directory_for(commit)} && git show -s --pretty=format:"#{format}" #{commit}`).tap { |info|
    info[:committed_at] = Time.parse(info[:committed_at])
  }
end