class HOC::Svn

Subversion source code base.

Public Class Methods

new(dir) click to toggle source
# File lib/hoc/svn.rb, line 27
def initialize(dir)
  @dir = dir
end

Public Instance Methods

hits() click to toggle source
# 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