Module: Gitlab::View::Presenter::Base
Instance Method Summary
collapse
Methods included from Allowable
#can_all?, #can_any?
Methods included from Routing
includes_helpers, redirect_legacy_paths, url_helpers
Instance Method Details
#__subject__ ⇒ Object
Presenters should always access the subject through an explicit getter defined with ‘presents …, as:`, the `__subject__` method is only intended for internal use.
16
17
18
|
# File 'lib/gitlab/view/presenter/base.rb', line 16
def __subject__
@subject
end
|
#can?(user, action, overridden_subject = nil) ⇒ Boolean
20
21
22
|
# File 'lib/gitlab/view/presenter/base.rb', line 20
def can?(user, action, overridden_subject = nil)
super(user, action, overridden_subject || __subject__)
end
|
#declarative_policy_delegate ⇒ Object
delegate all #can? queries to the subject
25
26
27
|
# File 'lib/gitlab/view/presenter/base.rb', line 25
def declarative_policy_delegate
__subject__
end
|
#is_a?(type) ⇒ Boolean
37
38
39
|
# File 'lib/gitlab/view/presenter/base.rb', line 37
def is_a?(type)
super || __subject__.is_a?(type)
end
|
#path_with_line_numbers(path, start_line, end_line) ⇒ Object
49
50
51
52
53
|
# File 'lib/gitlab/view/presenter/base.rb', line 49
def path_with_line_numbers(path, start_line, end_line)
complete_path = path + "#L#{start_line}"
complete_path += "-#{end_line}" if end_line && end_line != start_line
complete_path
end
|
#present(**attributes) ⇒ Object
29
30
31
|
# File 'lib/gitlab/view/presenter/base.rb', line 29
def present(**attributes)
self
end
|
#url_builder ⇒ Object
33
34
35
|
# File 'lib/gitlab/view/presenter/base.rb', line 33
def url_builder
Gitlab::UrlBuilder.instance
end
|
#web_path ⇒ Object
45
46
47
|
# File 'lib/gitlab/view/presenter/base.rb', line 45
def web_path
url_builder.build(__subject__, only_path: true)
end
|
#web_url ⇒ Object
41
42
43
|
# File 'lib/gitlab/view/presenter/base.rb', line 41
def web_url
url_builder.build(__subject__)
end
|