Sha256: 513ef74b799e0c76190f23bccffcb5f2fc4dfdaf56d9f62bace2430ad8d0f5fe

Contents?: true

Size: 1.02 KB

Versions: 75

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

require 'avm/result'

module Avm
  module Git
    module Issue
      class Complete
        def commits_result
          ::Avm::Result.success_or_error(commits.any?, 'yes', 'none')
        end

        def commits_uncached
          return [] unless branch_hash && follow_master?

          interval = remote_master_hash ? "#{remote_master_hash}..#{branch_hash}" : branch_hash
          @git.execute!('rev-list', interval).each_line.map(&:strip)
        end

        def bifurcations_result
          commits.each do |commit|
            if multiple_parents?(commit)
              return ::Avm::Result.error("#{commit} has multiple parents")
            end
          end
          ::Avm::Result.success('no')
        end

        def multiple_parents?(commit)
          commit_parents(commit).count > 1
        end

        def commit_parents(commit)
          @git.execute!('log', '--pretty=%P', '-n', '1', commit).split(' ').map(&:strip)
              .select(&:present?)
        end
      end
    end
  end
end

Version data entries

75 entries across 75 versions & 1 rubygems

Version Path
avm-tools-0.102.1 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.102.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.101.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.100.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.99.1 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.99.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.98.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.97.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.96.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.95.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.94.3 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.94.2 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.94.1 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.94.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.93.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.92.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.91.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.90.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.89.0 lib/avm/git/issue/complete/_commits.rb
avm-tools-0.88.0 lib/avm/git/issue/complete/_commits.rb