Class: ReleasePresenter

Inherits:
Gitlab::View::Presenter::Delegated show all
Defined in:
app/presenters/release_presenter.rb

Instance Method Summary collapse

Methods inherited from Gitlab::View::Presenter::Delegated

#initialize

Methods included from Gitlab::Utils::DelegatorOverride

#delegator_override, #delegator_override_with, #delegator_target, validator, validators, verify!

Methods included from Gitlab::View::Presenter::Base

#__subject__, #can?, #declarative_policy_delegate, #is_a?, #path_with_line_numbers, #present, #url_builder, #web_path, #web_url

Methods included from Gitlab::Allowable

#can?

Methods included from Gitlab::Routing

includes_helpers, redirect_legacy_paths, url_helpers

Constructor Details

This class inherits a constructor from Gitlab::View::Presenter::Delegated

Instance Method Details

#assets_countObject



49
50
51
52
53
54
55
# File 'app/presenters/release_presenter.rb', line 49

def assets_count
  if can_read_code?
    release.assets_count
  else
    release.assets_count(except: [:sources])
  end
end

#closed_issues_urlObject



38
39
40
# File 'app/presenters/release_presenter.rb', line 38

def closed_issues_url
  project_issues_url(project, params_for_issues_and_mrs(state: 'closed'))
end

#closed_merge_requests_urlObject



30
31
32
# File 'app/presenters/release_presenter.rb', line 30

def closed_merge_requests_url
  project_merge_requests_url(project, params_for_issues_and_mrs(state: 'closed'))
end

#commit_pathObject



6
7
8
9
10
# File 'app/presenters/release_presenter.rb', line 6

def commit_path
  return unless release.commit && can_read_code?

  project_commit_path(project, release.commit.id)
end

#download_url(filepath) ⇒ Object



62
63
64
65
66
# File 'app/presenters/release_presenter.rb', line 62

def download_url(filepath)
  filepath = filepath.sub(%r{^/}, '') if filepath.start_with?('/')

  downloads_project_release_url(project, release, filepath)
end

#edit_urlObject



42
43
44
45
46
# File 'app/presenters/release_presenter.rb', line 42

def edit_url
  return unless release_edit_page_available?

  edit_project_release_url(project, release)
end

#merged_merge_requests_urlObject



26
27
28
# File 'app/presenters/release_presenter.rb', line 26

def merged_merge_requests_url
  project_merge_requests_url(project, params_for_issues_and_mrs(state: 'merged'))
end

#nameObject



58
59
60
# File 'app/presenters/release_presenter.rb', line 58

def name
  release.name
end

#opened_issues_urlObject



34
35
36
# File 'app/presenters/release_presenter.rb', line 34

def opened_issues_url
  project_issues_url(project, params_for_issues_and_mrs)
end

#opened_merge_requests_urlObject



22
23
24
# File 'app/presenters/release_presenter.rb', line 22

def opened_merge_requests_url
  project_merge_requests_url(project, params_for_issues_and_mrs)
end

#self_urlObject



18
19
20
# File 'app/presenters/release_presenter.rb', line 18

def self_url
  project_release_url(project, release)
end

#tag_pathObject



12
13
14
15
16
# File 'app/presenters/release_presenter.rb', line 12

def tag_path
  return unless can_read_code?

  project_tag_path(project, release.tag)
end