diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-02-18 09:45:46 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-02-18 09:45:46 +0000 |
commit | a7b3560714b4d9cc4ab32dffcd1f74a284b93580 (patch) | |
tree | 7452bd5c3545c2fa67a28aa013835fb4fa071baf /app/presenters/blob_presenter.rb | |
parent | ee9173579ae56a3dbfe5afe9f9410c65bb327ca7 (diff) | |
download | gitlab-ce-a7b3560714b4d9cc4ab32dffcd1f74a284b93580.tar.gz |
Add latest changes from gitlab-org/gitlab@14-8-stable-eev14.8.0-rc42
Diffstat (limited to 'app/presenters/blob_presenter.rb')
-rw-r--r-- | app/presenters/blob_presenter.rb | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/app/presenters/blob_presenter.rb b/app/presenters/blob_presenter.rb index 2577fcaf303..47b72df32a2 100644 --- a/app/presenters/blob_presenter.rb +++ b/app/presenters/blob_presenter.rb @@ -32,7 +32,7 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated end def blob_language - @_blob_language ||= Gitlab::Diff::CustomDiff.transformed_blob_language(blob) || language + @_blob_language ||= Gitlab::Diff::CustomDiff.transformed_blob_language(blob) || gitattr_language || detect_language end def raw_plain_data @@ -79,6 +79,18 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated url_helpers.project_blob_path(project, File.join(project.repository.commit.sha, blob.path)) end + def environment_formatted_external_url + return unless environment + + environment.formatted_external_url + end + + def environment_external_url_for_route_map + return unless environment + + environment.external_url_for(blob.path, blob.commit_id) + end + # Will be overridden in EE def code_owners [] @@ -113,7 +125,7 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated def external_storage_url return unless static_objects_external_storage_enabled? - external_storage_url_or_path(url_helpers.project_raw_url(project, ref_qualified_path)) + external_storage_url_or_path(url_helpers.project_raw_url(project, ref_qualified_path), project) end private @@ -122,6 +134,12 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated Gitlab::Routing.url_helpers end + def environment + environment_params = project.repository.branch_exists?(blob.commit_id) ? { ref: blob.commit_id } : { sha: blob.commit_id } + environment_params[:find_latest] = true + ::Environments::EnvironmentsByDeploymentsFinder.new(project, current_user, environment_params).execute.last + end + def project blob.repository.project end @@ -148,9 +166,15 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated @all_lines ||= blob.data.lines end - def language + def gitattr_language blob.language_from_gitattributes end + + def detect_language + return if blob.binary? + + Rouge::Lexer.guess(filename: blob.path, source: blob_data(nil)) { |lex| lex.min_by(&:tag) }.tag + end end BlobPresenter.prepend_mod_with('BlobPresenter') |