48 lines
		
	
	
		
			937 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			937 B
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Gitlab
 | |
|   module Diff
 | |
|     module Formatters
 | |
|       class ImageFormatter < BaseFormatter
 | |
|         attr_reader :width
 | |
|         attr_reader :height
 | |
|         attr_reader :x
 | |
|         attr_reader :y
 | |
| 
 | |
|         def initialize(attrs)
 | |
|           @x = attrs[:x]
 | |
|           @y = attrs[:y]
 | |
|           @width = attrs[:width]
 | |
|           @height = attrs[:height]
 | |
| 
 | |
|           super(attrs)
 | |
|         end
 | |
| 
 | |
|         def key
 | |
|           @key ||= super.push(x, y)
 | |
|         end
 | |
| 
 | |
|         def complete?
 | |
|           [x, y, width, height].all?(&:present?)
 | |
|         end
 | |
| 
 | |
|         def to_h
 | |
|           super.merge(width: width, height: height, x: x, y: y)
 | |
|         end
 | |
| 
 | |
|         def position_type
 | |
|           "image"
 | |
|         end
 | |
| 
 | |
|         def ==(other)
 | |
|           other.is_a?(self.class) &&
 | |
|             x == other.x &&
 | |
|             y == other.y &&
 | |
|             width == other.width &&
 | |
|             height == other.height
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |