Sha256: 7b9540a947cfd0b06a99a2088977697e0d376743b78206d6f38457d590bafe7f

Contents?: true

Size: 1.12 KB

Versions: 136

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require 'avm/result'

module Avm
  module Git
    module Issue
      class Complete
        module Commits
          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
            launcher_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)
            launcher_git.execute!('log', '--pretty=%P', '-n', '1', commit).split(' ').map(&:strip)
                        .select(&:present?)
          end
        end
      end
    end
  end
end

Version data entries

136 entries across 136 versions & 3 rubygems

Version Path
eac_tools-0.80.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.79.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.78.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.77.1 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.77.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.76.1 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.76.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.75.2 sub/avm-git/lib/avm/git/issue/complete/commits.rb
avm-git-0.13.4 lib/avm/git/issue/complete/commits.rb
eac_tools-0.75.1 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.75.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.74.1 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.74.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.73.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.72.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.70.1 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.70.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.69.1 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.69.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb
eac_tools-0.68.0 sub/avm-git/lib/avm/git/issue/complete/commits.rb