Sha256: 46d5f5d2d545ba71cbebc51dad45f2ede841d3faa4fdb934de1fbc6b79f4e604

Contents?: true

Size: 828 Bytes

Versions: 12

Compression:

Stored size: 828 Bytes

Contents

# -*- encoding : utf-8 -*-
module GitStats
  module GitData
    class ShortStat
      attr_reader :commit, :files_changed, :insertions, :deletions

      def initialize(commit)
        @commit = commit
        calculate_stat
      end

      def changed_lines
        insertions + deletions
      end

      def to_s
        "#{self.class} #@commit"
      end

      private
      def calculate_stat
        stat_line = commit.repo.run("git show --shortstat --oneline #{commit.sha}").lines.to_a[1]
        if stat_line.blank?
          @files_changed = @insertions = @deletions = 0
        else
          @files_changed = stat_line[/(\d+) files? changed/, 1].to_i
          @insertions = stat_line[/(\d+) insertions?/, 1].to_i
          @deletions = stat_line[/(\d+) deletions?/, 1].to_i
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
git_stats-1.0.11 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.10 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.9 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.8 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.7 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.6 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.5 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.4 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.3 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.2 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.1 lib/git_stats/git_data/short_stat.rb
git_stats-1.0.0 lib/git_stats/git_data/short_stat.rb