Class: Lolcommits::MercurialInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/lolcommits/backends/mercurial_info.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMercurialInfo

Returns a new instance of MercurialInfo.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/lolcommits/backends/mercurial_info.rb', line 13

def initialize
  # mercurial sets HG_RESULT for post- hooks
  if ENV.key?('HG_RESULT') && ENV['HG_RESULT'] != '0'
    debug 'Aborting lolcommits hook from failed operation'
    exit 1
  end

  Mercurial.configure do |conf|
    conf.hg_binary_path = 'hg'
  end
  debug 'parsed the following values from commit:'
  debug "\t#{message}"
  debug "\t#{sha}"
  debug "\t#{repo_internal_path}"
  debug "\t#{repo}"
  debug "\t#{branch}"
  debug "\t#{commit_date}"
  debug "\t#{author_name}" if author_name
  debug "\t#{author_email}" if author_email
end

Class Method Details

.local_name(path = '.') ⇒ Object



9
10
11
# File 'lib/lolcommits/backends/mercurial_info.rb', line 9

def self.local_name(path = '.')
  File.basename(File.dirname(Mercurial::Repository.open(path).dothg_path))
end

.repo_root?(path = '.') ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/lolcommits/backends/mercurial_info.rb', line 5

def self.repo_root?(path = '.')
  File.directory?(File.join(path, '.hg'))
end

Instance Method Details

#author_emailObject



65
66
67
# File 'lib/lolcommits/backends/mercurial_info.rb', line 65

def author_email
  @author_email ||= last_commit.author_email
end

#author_nameObject



61
62
63
# File 'lib/lolcommits/backends/mercurial_info.rb', line 61

def author_name
  @author_name ||= last_commit.author
end

#branchObject



34
35
36
# File 'lib/lolcommits/backends/mercurial_info.rb', line 34

def branch
  @branch ||= last_commit.branch_name
end

#commit_dateObject



69
70
71
# File 'lib/lolcommits/backends/mercurial_info.rb', line 69

def commit_date
  @commit_date ||= last_commit.date.utc
end

#messageObject



38
39
40
41
42
43
# File 'lib/lolcommits/backends/mercurial_info.rb', line 38

def message
  @message ||= begin
    message = last_commit.message || ''
    message.split("\n").first
  end
end

#repoObject



57
58
59
# File 'lib/lolcommits/backends/mercurial_info.rb', line 57

def repo
  @repo ||= File.basename(File.dirname(repo_internal_path))
end

#repo_internal_pathObject



49
50
51
# File 'lib/lolcommits/backends/mercurial_info.rb', line 49

def repo_internal_path
  @repo_internal_path ||= repository.dothg_path
end

#shaObject



45
46
47
# File 'lib/lolcommits/backends/mercurial_info.rb', line 45

def sha
  @sha ||= last_commit.id[0..10]
end

#urlObject



53
54
55
# File 'lib/lolcommits/backends/mercurial_info.rb', line 53

def url
  @url ||= repository.path
end