Sha256: 99343936de1c95bef4685a5bdb8fe05436374839d6a7055889d72ca56af3d4cc

Contents?: true

Size: 1.13 KB

Versions: 19

Compression:

Stored size: 1.13 KB

Contents

# typed: strict

module CodeOwnership
  module Private
    module Validations
      class FilesHaveUniqueOwners
        extend T::Sig
        extend T::Helpers
        include Validator

        sig { override.params(files: T::Array[String], autocorrect: T::Boolean, stage_changes: T::Boolean).returns(T::Array[String]) }
        def validation_errors(files:, autocorrect: true, stage_changes: true)
          cache = Private.glob_cache
          file_mappings = cache.mapper_descriptions_that_map_files(files)
          files_mapped_by_multiple_mappers = file_mappings.select do |file, mapper_descriptions|
            mapper_descriptions.count > 1
          end

          errors = T.let([], T::Array[String])

          if files_mapped_by_multiple_mappers.any?
            errors << <<~MSG
              Code ownership should only be defined for each file in one way. The following files have declared ownership in multiple ways.

              #{files_mapped_by_multiple_mappers.map { |file, descriptions| "- #{file} (#{descriptions.to_a.join(', ')})" }.join("\n")}
            MSG
          end

          errors
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
code_ownership-1.36.2 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.36.1 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.36.0 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.35.0 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.34.2 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.34.1 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.33.1 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.33.0 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.19 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.18 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.17 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.16 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.15 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.14 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.13 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.12 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.11 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.10 lib/code_ownership/private/validations/files_have_unique_owners.rb
code_ownership-1.32.9 lib/code_ownership/private/validations/files_have_unique_owners.rb