summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2018-02-07 14:32:32 -0200
committerOswaldo Ferreira <oswaldo@gitlab.com>2018-02-07 16:29:27 -0200
commitdfe9f0bc6ed38363c7e6c01bf95b42f3e5c0166b (patch)
treedbac868ce52fb5782f3e40adf073ae5e69c571d2
parent6441612614fd5b89c7990010b9ba4734dbfe8ef1 (diff)
downloadgitlab-ce-dfe9f0bc6ed38363c7e6c01bf95b42f3e5c0166b.tar.gz
Remove duplicate calls of MergeRequest#can_be_reverted?
-rw-r--r--app/presenters/merge_request_presenter.rb12
-rw-r--r--changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml5
2 files changed, 15 insertions, 2 deletions
diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb
index c6806b7cc26..c1b4429bd0c 100644
--- a/app/presenters/merge_request_presenter.rb
+++ b/app/presenters/merge_request_presenter.rb
@@ -3,6 +3,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
include GitlabRoutingHelper
include MarkupHelper
include TreeHelper
+ include Gitlab::Utils::StrongMemoize
presents :merge_request
@@ -43,7 +44,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
end
def revert_in_fork_path
- if user_can_fork_project? && can_be_reverted?(current_user)
+ if user_can_fork_project? && _can_be_reverted?
continue_params = {
to: merge_request_path(merge_request),
notice: "#{edit_in_new_fork_notice} Try to cherry-pick this commit again.",
@@ -151,7 +152,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
end
def can_revert_on_current_merge_request?
- user_can_collaborate_with_project? && can_be_reverted?(current_user)
+ user_can_collaborate_with_project? && _can_be_reverted?
end
def can_cherry_pick_on_current_merge_request?
@@ -164,6 +165,13 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
private
+ # Method overrides doesn't work for Gitlab::View::Presenter::Delegated
+ def _can_be_reverted?
+ strong_memoize(:can_be_reverted) do
+ can_be_reverted?(current_user)
+ end
+ end
+
def conflicts
@conflicts ||= MergeRequests::Conflicts::ListService.new(merge_request)
end
diff --git a/changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml b/changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml
new file mode 100644
index 00000000000..03940555162
--- /dev/null
+++ b/changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml
@@ -0,0 +1,5 @@
+---
+title: Remove duplicate calls of MergeRequest#can_be_reverted?
+merge_request:
+author:
+type: performance