Skip to content

Add Gitlab::Utils::StrongMemoize

Lin Jen-Shin requested to merge 39842-fetch-ivar into master

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?

What are the relevant issue numbers?

Closes #39842 (closed)

Edited by Lin Jen-Shin

Merge request reports