Class: HOC::Svn

Inherits:
Object
  • Object
show all
Defined in:
lib/hoc/svn.rb

Overview

Subversion source code base.

Instance Method Summary collapse

Constructor Details

#initialize(dir) ⇒ Svn

Returns a new instance of Svn.



27
28
29
# File 'lib/hoc/svn.rb', line 27

def initialize(dir)
  @dir = dir
end

Instance Method Details

#hitsObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/hoc/svn.rb', line 31

def hits
  version = `svn --non-interactive --version --quiet`
  raise "svn version #{version} is too old, upgrade it to 1.7+" unless
    Gem::Version.new(version) >= Gem::Version.new('1.7')
  raise 'diffstat is not installed' if
    `diffstat -V`.index('version').nil?
  log = `cd #{@dir} && svn log --diff | diffstat`
  [
    Hits.new(
      Time.now,
      log.split(/\n/).last.split(/[^\d]/)
        .map(&:to_i).select { |x| x > 0 }
        .drop(1).inject(:+)
    )
  ]
end