Sha256: f027f16b38a27ec617cc321a7b75af1d65196a5857f42ec7c7265757242b8286

Contents?: true

Size: 592 Bytes

Versions: 10

Compression:

Stored size: 592 Bytes

Contents

# frozen_string_literal: true

module GitFame
  class Diff < Base
    include Enumerable

    attribute :commit, Types::Any
    delegate :tree, to: :commit
    delegate :repo, to: :tree

    # @yield [Hash]
    #
    # @return [void]
    def each(&block)
      tree.walk(:preorder).each do |root, entry|
        case entry
        in { type: :blob, name: file, oid: }
          Rugged::Blame.new(repo, root + file, newest_commit: commit).each(&block)
        in { type: type, name: file }
          say("Ignore type [%s] in for %s", type, root + file)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
git_fame-3.2.7 lib/git_fame/diff.rb
git_fame-3.2.5 lib/git_fame/diff.rb
git_fame-3.2.2 lib/git_fame/diff.rb
git_fame-3.2.1 lib/git_fame/diff.rb
git_fame-3.1.1 lib/git_fame/diff.rb
git_fame-3.1.0 lib/git_fame/diff.rb
git_fame-3.0.3 lib/git_fame/diff.rb
git_fame-3.0.2 lib/git_fame/diff.rb
git_fame-3.0.1 lib/git_fame/diff.rb
git_fame-3.0.0 lib/git_fame/diff.rb