summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarin Jankovski <marin@gitlab.com>2014-09-04 11:25:14 +0200
committerMarin Jankovski <marin@gitlab.com>2014-09-08 09:05:16 +0200
commitf827482c12b3aeec2ed5f60afbf7c676e27435e3 (patch)
treeea03e00b15d4f5f4c3b42a7aec7ff3ee95840113
parent1067b00724c045b4fa46a9f8ff5acd09d65553e0 (diff)
downloadgitlab-ce-f827482c12b3aeec2ed5f60afbf7c676e27435e3.tar.gz
Remove duplication, expand for next_line.
-rw-r--r--app/helpers/commits_helper.rb4
-rw-r--r--app/views/projects/commits/_parallel_view.html.haml7
-rw-r--r--app/views/projects/commits/diffs/_match_line_parallel.html.haml4
-rw-r--r--lib/gitlab/diff_parser.rb43
4 files changed, 12 insertions, 46 deletions
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 2c1df6beeab..fe6c303ecf2 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -25,8 +25,8 @@ module CommitsHelper
def side_diff_line(diff, index)
Gitlab::DiffParser.new(diff.diff.lines.to_a, diff.new_path)
- .each_for_parallel do |full_line, type, line_code, line_new, line_old, next_line|
- yield(full_line, type, line_code, line_new, line_old, next_line)
+ .each do |full_line, type, line_code, line_new, line_old, raw_line, next_line|
+ yield(full_line, type, line_code, line_new, line_old, raw_line, next_line)
end
end
diff --git a/app/views/projects/commits/_parallel_view.html.haml b/app/views/projects/commits/_parallel_view.html.haml
index e566b1dfca4..92425f36577 100644
--- a/app/views/projects/commits/_parallel_view.html.haml
+++ b/app/views/projects/commits/_parallel_view.html.haml
@@ -1,10 +1,13 @@
/ Side-by-side diff view
%div.text-file
%table
- - side_diff_line(diff, index) do |line, type, line_code, line_new, line_old, next_line|
+ - side_diff_line(diff, index) do |line, type, line_code, line_new, line_old, raw_line, next_line|
- next if type == 'new'
%tr.line_holder.parallel{ id: line_code, class: "#{type}" }
- - if type != 'match'
+ - if type == "match"
+ = render "projects/commits/diffs/match_line_parallel", {line: line,
+ line_old: line_old, line_new: line_new, bottom: false}
+ - else
%td.old_line
= link_to raw(line_old), "##{line_code}", id: line_code
- if type == 'old'
diff --git a/app/views/projects/commits/diffs/_match_line_parallel.html.haml b/app/views/projects/commits/diffs/_match_line_parallel.html.haml
new file mode 100644
index 00000000000..815df16aa4a
--- /dev/null
+++ b/app/views/projects/commits/diffs/_match_line_parallel.html.haml
@@ -0,0 +1,4 @@
+%td.old_line
+ %td.line_content.parallel.matched= line
+%td.new_line
+ %td.line_content.parallel.matched= line
diff --git a/lib/gitlab/diff_parser.rb b/lib/gitlab/diff_parser.rb
index baec2e63baa..f226692a63c 100644
--- a/lib/gitlab/diff_parser.rb
+++ b/lib/gitlab/diff_parser.rb
@@ -15,47 +15,6 @@ module Gitlab
type = nil
lines_arr = ::Gitlab::InlineDiff.processing lines
- lines_arr.each do |line|
- raw_line = line.dup
-
- next if filename?(line)
-
- full_line = html_escape(line.gsub(/\n/, ''))
- full_line = ::Gitlab::InlineDiff.replace_markers full_line
-
- if line.match(/^@@ -/)
- type = "match"
-
- line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
- line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
-
- next if line_old == 1 && line_new == 1 #top of file
- yield(full_line, type, nil, line_new, line_old)
- next
- else
- type = identification_type(line)
- line_code = generate_line_code(new_path, line_new, line_old)
- yield(full_line, type, line_code, line_new, line_old, raw_line)
- end
-
-
- if line[0] == "+"
- line_new += 1
- elsif line[0] == "-"
- line_old += 1
- else
- line_new += 1
- line_old += 1
- end
- end
- end
-
- def each_for_parallel
- line_old = 1
- line_new = 1
- type = nil
-
- lines_arr = ::Gitlab::InlineDiff.processing lines
lines_arr.each_cons(2) do |line, next_line|
raw_line = line.dup
@@ -80,7 +39,7 @@ module Gitlab
else
type = identification_type(line)
line_code = generate_line_code(new_path, line_new, line_old)
- yield(full_line, type, line_code, line_new, line_old, next_line)
+ yield(full_line, type, line_code, line_new, line_old, raw_line, next_line)
end