Class: BlobPresenter
Instance Method Summary
collapse
#can_collaborate_with_project?, #user_access
Methods included from TreeHelper
#breadcrumb_data_attributes, #can_edit_tree?, #commit_in_fork_help, #commit_in_single_accessible_branch, #directory_download_links, #edit_in_new_fork_notice, #edit_in_new_fork_notice_action, #edit_in_new_fork_notice_now, #flatten_tree, #fork_modal_options, #on_top_of_branch?, #patch_branch_name, #path_breadcrumbs, #relative_url_root, #selected_branch, #tree_edit_branch, #tree_edit_project, #tree_icon, #tree_join, #up_dir_path, #vue_file_list_data, #web_ide_button_data
#can_collaborate?, #can_create_mr_from_fork?, #can_push_code?, #edit_url, #fork?, #gitpod_url, #needs_to_fork?, #project_fork, #project_to_use, #readable_blob?, #show_edit_button?, #show_gitpod_button?, #show_pipeline_editor_button?, #show_web_ide_button?, #web_ide_url
Methods included from BlobHelper
#blob_editor_paths, #blob_icon, #blob_raw_path, #blob_raw_url, #blob_render_error_options, #blob_render_error_reason, #contribution_options, #copy_blob_source_button, #copy_file_path_button, #delete_blob_link, #dockerfile_names, #download_blob_button, #edit_blob_button, #edit_blob_fork_params, #edit_button_tag, #edit_disabled_button_tag, #edit_fork_button_tag, #edit_link_tag, #edit_modify_file_fork_params, #editing_ci_config?, #editing_preview_title, #encode_ide_path, #fork_path_for_current_user, #gitignore_names, #gitlab_ci_ymls, #human_access, #ide_merge_request_path, #leave_edit_message, #licenses_for_select, #metrics_dashboard_ymls, #modify_file_button, #open_raw_blob_button, #parent_dir_raw_path, #readable_blob, #ref_project, #replace_blob_link, #sanitize_svg_data, #show_suggest_pipeline_creation_celebration?, #suggest_pipeline_commit_cookie_name
Methods included from DiffHelper
#apply_diff_view_cookie!, #collapsed_diff_url, #diff_file_blob_raw_path, #diff_file_blob_raw_url, #diff_file_html_data, #diff_file_old_blob_raw_path, #diff_file_old_blob_raw_url, #diff_file_stats_data, #diff_line_content, #diff_link_number, #diff_match_line, #diff_nomappinginraw_line, #diff_options, #diff_view, #diffs_expanded?, #editable_diff?, #inline_diff_btn, #mark_inline_diffs, #parallel_diff_btn, #parallel_diff_discussions, #render_fork_suggestion, #render_overflow_warning?, #show_only_context_commits?, #submodule_diff_compare_link, #submodule_link
#active_when, #add_page_specific_style, #add_page_startup_api_call, #admin_section?, #asset_to_string, #autocomplete_data_sources, #body_data, #body_data_page, #client_class_list, #client_js_flags, #collapsed_sidebar?, #conditional_link_to, #current_action?, #current_controller?, #dispensable_render, #dispensable_render_if_exists, #edited_time_ago_with_tooltip, #external_storage_url_or_path, #extra_config, #gitlab_config, #gitlab_ui_form_for, #hexdigest, #instance_review_permitted?, #last_commit, #linkedin_url, #locale_path, #outdated_browser?, #page_class, #page_filter_path, #page_startup_api_calls, #partial_exists?, #path_to_key, #project_data, promo_host, #promo_host, #promo_url, #read_only_message, #registry_config, #render_if_exists, #show_callout?, #show_last_push_widget?, #simple_sanitize, #static_objects_external_storage_enabled?, #stylesheet_link_tag_defer, #support_url, #system_message_class, #template_exists?, #time_ago_with_tooltip, #truncate_first_line, #twitter_url
#initialize
#delegator_override, #delegator_override_with, #delegator_target, validator, validators, verify!
#__subject__, #can?, #declarative_policy_delegate, #is_a?, #present, #url_builder
#can?
add_helpers, includes_helpers, redirect_legacy_paths, url_helpers
Instance Method Details
#archived? ⇒ Boolean
126
127
128
|
# File 'app/presenters/blob_presenter.rb', line 126
def archived?
project.archived
end
|
#blame_path ⇒ Object
75
76
77
|
# File 'app/presenters/blob_presenter.rb', line 75
def blame_path
url_helpers.project_blame_path(project, ref_qualified_path)
end
|
#can_current_user_push_to_branch? ⇒ Boolean
120
121
122
123
124
|
# File 'app/presenters/blob_presenter.rb', line 120
def can_current_user_push_to_branch?
return false unless current_user && project.repository.branch_exists?(blob.commit_id)
user_access(project).can_push_to_branch?(blob.commit_id)
end
|
#can_modify_blob? ⇒ Boolean
116
117
118
|
# File 'app/presenters/blob_presenter.rb', line 116
def can_modify_blob?
super(blob, project, blob.commit_id)
end
|
#code_navigation_path ⇒ Object
#code_owners ⇒ Object
100
101
102
|
# File 'app/presenters/blob_presenter.rb', line 100
def code_owners
[]
end
|
#edit_blob_path ⇒ Object
49
50
51
|
# File 'app/presenters/blob_presenter.rb', line 49
def edit_blob_path
url_helpers.project_edit_blob_path(project, ref_qualified_path)
end
|
#environment_external_url_for_route_map ⇒ Object
93
94
95
96
97
|
# File 'app/presenters/blob_presenter.rb', line 93
def environment_external_url_for_route_map
return unless environment
environment.external_url_for(blob.path, blob.commit_id)
end
|
87
88
89
90
91
|
# File 'app/presenters/blob_presenter.rb', line 87
def environment_formatted_external_url
return unless environment
environment.formatted_external_url
end
|
#external_storage_url ⇒ Object
134
135
136
137
138
|
# File 'app/presenters/blob_presenter.rb', line 134
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), project)
end
|
#find_file_path ⇒ Object
71
72
73
|
# File 'app/presenters/blob_presenter.rb', line 71
def find_file_path
url_helpers.project_find_file_path(project, ref_qualified_path)
end
|
#fork_and_edit_path ⇒ Object
104
105
106
|
# File 'app/presenters/blob_presenter.rb', line 104
def fork_and_edit_path
fork_path_for_current_user(project, edit_blob_path)
end
|
#fork_and_view_path ⇒ Object
112
113
114
|
# File 'app/presenters/blob_presenter.rb', line 112
def fork_and_view_path
fork_path_for_current_user(project, web_path)
end
|
#gitpod_blob_url ⇒ Object
65
66
67
68
69
|
# File 'app/presenters/blob_presenter.rb', line 65
def gitpod_blob_url
return unless Gitlab::CurrentSettings.gitpod_enabled && !current_user.nil? && current_user.gitpod_enabled
"#{Gitlab::CurrentSettings.gitpod_url}##{url_helpers.project_tree_url(project, tree_join(blob.commit_id, blob.path || ''))}"
end
|
#highlight(to: nil, plain: nil) ⇒ Object
12
13
14
15
16
17
18
19
20
21
|
# File 'app/presenters/blob_presenter.rb', line 12
def highlight(to: nil, plain: nil)
load_all_blob_data
Gitlab::Highlight.highlight(
blob.path,
blob_data(to),
language: blob_language,
plain: plain
)
end
|
#history_path ⇒ Object
79
80
81
|
# File 'app/presenters/blob_presenter.rb', line 79
def history_path
url_helpers.project_commits_path(project, ref_qualified_path)
end
|
#ide_edit_path ⇒ Object
130
131
132
|
# File 'app/presenters/blob_presenter.rb', line 130
def ide_edit_path
super(project, blob.commit_id, blob.path)
end
|
#ide_fork_and_edit_path ⇒ Object
108
109
110
|
# File 'app/presenters/blob_presenter.rb', line 108
def ide_fork_and_edit_path
fork_path_for_current_user(project, ide_edit_path)
end
|
#permalink_path ⇒ Object
83
84
85
|
# File 'app/presenters/blob_presenter.rb', line 83
def permalink_path
url_helpers.project_blob_path(project, File.join(project.repository.commit.sha, blob.path))
end
|
#pipeline_editor_path ⇒ Object
61
62
63
|
# File 'app/presenters/blob_presenter.rb', line 61
def pipeline_editor_path
project_ci_pipeline_editor_path(project, branch_name: blob.commit_id) if can_collaborate_with_project?(project) && blob.path == project.ci_config_path_or_default
end
|
#plain_data ⇒ Object
23
24
25
26
27
|
# File 'app/presenters/blob_presenter.rb', line 23
def plain_data
return if blob.binary?
highlight(plain: false)
end
|
#project_blob_path_root ⇒ Object
144
145
146
|
# File 'app/presenters/blob_presenter.rb', line 144
def project_blob_path_root
project_blob_path(project, blob.commit_id)
end
|
#raw_path ⇒ Object
53
54
55
|
# File 'app/presenters/blob_presenter.rb', line 53
def raw_path
url_helpers.project_raw_path(project, ref_qualified_path)
end
|
#raw_plain_data ⇒ Object
37
38
39
|
# File 'app/presenters/blob_presenter.rb', line 37
def raw_plain_data
blob.data unless blob.binary?
end
|
#replace_path ⇒ Object
57
58
59
|
# File 'app/presenters/blob_presenter.rb', line 57
def replace_path
url_helpers.project_update_blob_path(project, ref_qualified_path)
end
|
#web_path ⇒ Object
45
46
47
|
# File 'app/presenters/blob_presenter.rb', line 45
def web_path
url_helpers.project_blob_path(project, ref_qualified_path)
end
|
#web_url ⇒ Object
41
42
43
|
# File 'app/presenters/blob_presenter.rb', line 41
def web_url
url_helpers.project_blob_url(project, ref_qualified_path)
end
|