Class: Gitlab::Utils::UsernameAndEmailGenerator

Inherits:
Object
  • Object
show all
Includes:
StrongMemoize
Defined in:
lib/gitlab/utils/username_and_email_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(username_prefix:, email_domain: Gitlab.config.gitlab.host) ⇒ UsernameAndEmailGenerator

Returns a new instance of UsernameAndEmailGenerator.



10
11
12
13
# File 'lib/gitlab/utils/username_and_email_generator.rb', line 10

def initialize(username_prefix:, email_domain: Gitlab.config.gitlab.host)
  @username_prefix = username_prefix
  @email_domain = email_domain
end

Instance Method Details

#emailObject



22
23
24
# File 'lib/gitlab/utils/username_and_email_generator.rb', line 22

def email
  email_for(username)
end

#usernameObject



15
16
17
18
19
# File 'lib/gitlab/utils/username_and_email_generator.rb', line 15

def username
  uniquify.string(->(counter) { Kernel.sprintf(username_pattern, counter) }) do |suggested_username|
    ::Namespace.by_path(suggested_username) || ::User.find_by_any_email(email_for(suggested_username))
  end
end