# frozen_string_literal: true module Gitlab module Git module Patches class Collection MAX_PATCH_SIZE = 2.megabytes def initialize(one_or_more_patches) @patches = Array(one_or_more_patches).map do |patch_content| Gitlab::Git::Patches::Patch.new(patch_content) end end def content @patches.map(&:content).join("\n") end def valid_size? size < MAX_PATCH_SIZE end # rubocop: disable CodeReuse/ActiveRecord # `@patches` is not an `ActiveRecord` relation, but an `Enumerable` # We're using sum from `ActiveSupport` def size @size ||= @patches.sum(&:size) end # rubocop: enable CodeReuse/ActiveRecord end end end end