class Contributor::Calc::Crease

Constants

COMMAND

Attributes

result[R]

Public Class Methods

new() click to toggle source
# File lib/contributor/calc/crease.rb, line 11
def initialize
  @result = Hash.new { |h, k| h[k] = { additional: 0, deletional: 0 } }
end

Public Instance Methods

run() click to toggle source
# File lib/contributor/calc/crease.rb, line 15
def run
  authors = Contributor.configuration.authors
  terms = Contributor.configuration.terms

  authors.each do |author|
    author.alias_names_for_git.each do |name|
      COMMAND.each do |key, command|
        command = sprintf(
          command,
          author: name,
          beginning_at: terms['beginning_at'].to_s,
          end_at: terms['end_at'].to_s
        )

        @result[author][key] += `#{command}`.strip.to_i
      end
    end
  end

  @result.each do |author, values|
    if values[:additional].zero? && values[:deletional].zero?
      @result.delete(author)
    else
      @result[author] = "+#{values[:additional]}, -#{values[:deletional]}"
    end
  end
end