Add Gitlab::Utils::StrongMemoize
What does this MR do?
Add Gitlab::Utils::StrongMemoize helps us write patterns like this:
def trigger_from_token
return @trigger if defined?(@trigger)
@trigger = Ci::Trigger.find_by_token(params[:token].to_s)
end
And we just write:
def access_token
strong_memoize(:access_token) do
find_oauth_access_token || find_personal_access_token
end
end
Why was this MR needed?
So that I could disable less in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12800
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
Tests added for this feature/bug - Review
-
Has been reviewed by Backend
-
What are the relevant issue numbers?
Closes #39842 (closed)
Edited by Lin Jen-Shin