From dfe9f0bc6ed38363c7e6c01bf95b42f3e5c0166b Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Wed, 7 Feb 2018 14:32:32 -0200 Subject: Remove duplicate calls of MergeRequest#can_be_reverted? --- app/presenters/merge_request_presenter.rb | 12 ++++++++++-- .../osw-remove-duplicate-can-be-reverted-calls.yml | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml 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 -- cgit v1.2.1 From fd372ce3957dd810c9f774944d68aaed6fd46d98 Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Wed, 7 Feb 2018 15:30:41 -0200 Subject: Address naming suggestion --- app/presenters/merge_request_presenter.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb index c1b4429bd0c..08ae49562c7 100644 --- a/app/presenters/merge_request_presenter.rb +++ b/app/presenters/merge_request_presenter.rb @@ -44,7 +44,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated end def revert_in_fork_path - if user_can_fork_project? && _can_be_reverted? + if user_can_fork_project? && cached_can_be_reverted? continue_params = { to: merge_request_path(merge_request), notice: "#{edit_in_new_fork_notice} Try to cherry-pick this commit again.", @@ -152,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? + user_can_collaborate_with_project? && cached_can_be_reverted? end def can_cherry_pick_on_current_merge_request? @@ -165,8 +165,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated private - # Method overrides doesn't work for Gitlab::View::Presenter::Delegated - def _can_be_reverted? + def cached_can_be_reverted? strong_memoize(:can_be_reverted) do can_be_reverted?(current_user) end -- cgit v1.2.1