diff options
Diffstat (limited to 'app/serializers/concerns/diff_file_conflict_type.rb')
-rw-r--r-- | app/serializers/concerns/diff_file_conflict_type.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/serializers/concerns/diff_file_conflict_type.rb b/app/serializers/concerns/diff_file_conflict_type.rb new file mode 100644 index 00000000000..29e30245dce --- /dev/null +++ b/app/serializers/concerns/diff_file_conflict_type.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +module DiffFileConflictType + extend ActiveSupport::Concern + include Gitlab::Utils::StrongMemoize + + included do + expose :conflict_type do |diff_file, options| + conflict_file = conflict_file(options, diff_file) + + next unless conflict_file + + conflict_file.conflict_type(diff_file) + end + end + + private + + def conflict_file(options, diff_file) + strong_memoize(:conflict_file) do + options[:conflicts] && options[:conflicts][diff_file.new_path] + end + end +end |