Fix method visibility in inline diff class
This commit is contained in:
		
							parent
							
								
									e15b63b34e
								
							
						
					
					
						commit
						20a5033d79
					
				|  | @ -19,24 +19,6 @@ module Gitlab | ||||||
| 
 | 
 | ||||||
|       attr_accessor :old_line, :new_line, :offset |       attr_accessor :old_line, :new_line, :offset | ||||||
| 
 | 
 | ||||||
|       def self.for_lines(lines) |  | ||||||
|         changed_line_pairs = self.find_changed_line_pairs(lines) |  | ||||||
| 
 |  | ||||||
|         inline_diffs = [] |  | ||||||
| 
 |  | ||||||
|         changed_line_pairs.each do |old_index, new_index| |  | ||||||
|           old_line = lines[old_index] |  | ||||||
|           new_line = lines[new_index] |  | ||||||
| 
 |  | ||||||
|           old_diffs, new_diffs = new(old_line, new_line, offset: 1).inline_diffs |  | ||||||
| 
 |  | ||||||
|           inline_diffs[old_index] = old_diffs |  | ||||||
|           inline_diffs[new_index] = new_diffs |  | ||||||
|         end |  | ||||||
| 
 |  | ||||||
|         inline_diffs |  | ||||||
|       end |  | ||||||
| 
 |  | ||||||
|       def initialize(old_line, new_line, offset: 0) |       def initialize(old_line, new_line, offset: 0) | ||||||
|         @old_line = old_line[offset..-1] |         @old_line = old_line[offset..-1] | ||||||
|         @new_line = new_line[offset..-1] |         @new_line = new_line[offset..-1] | ||||||
|  | @ -63,32 +45,54 @@ module Gitlab | ||||||
|         [old_diffs, new_diffs] |         [old_diffs, new_diffs] | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       private |       class << self | ||||||
|  |         def for_lines(lines) | ||||||
|  |           changed_line_pairs = find_changed_line_pairs(lines) | ||||||
| 
 | 
 | ||||||
|       # Finds pairs of old/new line pairs that represent the same line that changed |           inline_diffs = [] | ||||||
|       def self.find_changed_line_pairs(lines) |  | ||||||
|         # Prefixes of all diff lines, indicating their types |  | ||||||
|         # For example: `" - +  -+  ---+++ --+  -++"` |  | ||||||
|         line_prefixes = lines.each_with_object("") { |line, s| s << line[0] }.gsub(/[^ +-]/, ' ') |  | ||||||
| 
 | 
 | ||||||
|         changed_line_pairs = [] |           changed_line_pairs.each do |old_index, new_index| | ||||||
|         line_prefixes.scan(LINE_PAIRS_PATTERN) do |             old_line = lines[old_index] | ||||||
|           # For `"---+++"`, `begin_index == 0`, `end_index == 6` |             new_line = lines[new_index] | ||||||
|           begin_index, end_index = Regexp.last_match.offset(:del_ins) |  | ||||||
| 
 | 
 | ||||||
|           # For `"---+++"`, `changed_line_count == 3` |             old_diffs, new_diffs = new(old_line, new_line, offset: 1).inline_diffs | ||||||
|           changed_line_count = (end_index - begin_index) / 2 |  | ||||||
| 
 | 
 | ||||||
|           halfway_index = begin_index + changed_line_count |             inline_diffs[old_index] = old_diffs | ||||||
|           (begin_index...halfway_index).each do |i| |             inline_diffs[new_index] = new_diffs | ||||||
|             # For `"---+++"`, index 1 maps to 1 + 3 = 4 |  | ||||||
|             changed_line_pairs << [i, i + changed_line_count] |  | ||||||
|           end |           end | ||||||
|  | 
 | ||||||
|  |           inline_diffs | ||||||
|         end |         end | ||||||
| 
 | 
 | ||||||
|         changed_line_pairs |         private | ||||||
|  | 
 | ||||||
|  |         # Finds pairs of old/new line pairs that represent the same line that changed | ||||||
|  |         def find_changed_line_pairs(lines) | ||||||
|  |           # Prefixes of all diff lines, indicating their types | ||||||
|  |           # For example: `" - +  -+  ---+++ --+  -++"` | ||||||
|  |           line_prefixes = lines.each_with_object("") { |line, s| s << line[0] }.gsub(/[^ +-]/, ' ') | ||||||
|  | 
 | ||||||
|  |           changed_line_pairs = [] | ||||||
|  |           line_prefixes.scan(LINE_PAIRS_PATTERN) do | ||||||
|  |             # For `"---+++"`, `begin_index == 0`, `end_index == 6` | ||||||
|  |             begin_index, end_index = Regexp.last_match.offset(:del_ins) | ||||||
|  | 
 | ||||||
|  |             # For `"---+++"`, `changed_line_count == 3` | ||||||
|  |             changed_line_count = (end_index - begin_index) / 2 | ||||||
|  | 
 | ||||||
|  |             halfway_index = begin_index + changed_line_count | ||||||
|  |             (begin_index...halfway_index).each do |i| | ||||||
|  |               # For `"---+++"`, index 1 maps to 1 + 3 = 4 | ||||||
|  |               changed_line_pairs << [i, i + changed_line_count] | ||||||
|  |             end | ||||||
|  |           end | ||||||
|  | 
 | ||||||
|  |           changed_line_pairs | ||||||
|  |         end | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|  |       private | ||||||
|  | 
 | ||||||
|       def longest_common_prefix(a, b) |       def longest_common_prefix(a, b) | ||||||
|         max_length = [a.length, b.length].max |         max_length = [a.length, b.length].max | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue