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.



30
31
32
# File 'lib/hoc/svn.rb', line 30

def initialize(dir)
  @dir = dir
end

Instance Method Details

#hitsObject



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

def hits
  version = `svn --version --quiet`
  fail "svn version #{version} is too old" unless
    Gem::Version.new(version) >= Gem::Version.new('1.7')
  fail '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 { |s| s.to_i }.select { |x| x > 0 }
        .drop(1).inject(:+)
    )
  ]
end