summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2016-10-13 10:34:15 +0100
committerAlfredo Sumaran <alfredo@gitlab.com>2016-10-13 14:16:35 -0500
commit3764fd4b4166bdf869cc04e4e82558d6b80b4ca5 (patch)
tree4fb9c02aecfc3409d70cd45c6525aaabe4035acc
parentcdd0dd507d1d5a226f1f438c4bfa602a115caac3 (diff)
downloadgitlab-ce-3764fd4b4166bdf869cc04e4e82558d6b80b4ca5.tar.gz
Add blob_ace_mode to conflict content response
-rw-r--r--lib/gitlab/conflict/file.rb5
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb1
-rw-r--r--spec/lib/gitlab/conflict/file_spec.rb11
3 files changed, 17 insertions, 0 deletions
diff --git a/lib/gitlab/conflict/file.rb b/lib/gitlab/conflict/file.rb
index 661e43d3fa9..c843315782d 100644
--- a/lib/gitlab/conflict/file.rb
+++ b/lib/gitlab/conflict/file.rb
@@ -25,6 +25,10 @@ module Gitlab
merge_file_result[:data]
end
+ def our_blob
+ @our_blob ||= repository.blob_at(merge_request.diff_refs.head_sha, our_path)
+ end
+
def type
lines unless @type
@@ -209,6 +213,7 @@ module Gitlab
json_hash.tap do |json_hash|
if opts[:full_content]
json_hash[:content] = content
+ json_hash[:blob_ace_mode] = our_blob && our_blob.language.try(:ace_mode)
else
json_hash[:sections] = sections if type.text?
json_hash[:type] = type
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 31f43bdc89a..3fe90375b92 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -712,6 +712,7 @@ describe Projects::MergeRequestsController do
'new_path' => path,
'blob_icon' => 'file-text-o',
'blob_path' => a_string_ending_with(path),
+ 'blob_ace_mode' => 'ruby',
'content' => content)
end
end
diff --git a/spec/lib/gitlab/conflict/file_spec.rb b/spec/lib/gitlab/conflict/file_spec.rb
index 60020487061..648d342ecf8 100644
--- a/spec/lib/gitlab/conflict/file_spec.rb
+++ b/spec/lib/gitlab/conflict/file_spec.rb
@@ -257,5 +257,16 @@ FILE
it 'includes the blob icon for the file' do
expect(conflict_file.as_json[:blob_icon]).to eq('file-text-o')
end
+
+ context 'with the full_content option passed' do
+ it 'includes the full content of the conflict' do
+ expect(conflict_file.as_json(full_content: true)).to have_key(:content)
+ end
+
+ it 'includes the detected language of the conflict file' do
+ expect(conflict_file.as_json(full_content: true)[:blob_ace_mode]).
+ to eq('ruby')
+ end
+ end
end
end