Class: Synthra::Types::PersonalNames::Username
- Defined in:
- lib/synthra/types/personal_names/identifiers.rb
Overview
Username type
Instance Method Summary collapse
- #generate_edge(rng, context, args) ⇒ Object
- #generate_invalid(rng, context, args) ⇒ Object
-
#generate_random(rng, context, args) ⇒ String
Generate random username.
- #generate_random_base(rng, length) ⇒ Object private
Instance Method Details
#generate_edge(rng, context, args) ⇒ Object
33 34 35 |
# File 'lib/synthra/types/personal_names/identifiers.rb', line 33 def generate_edge(rng, context, args) ["", "a", "user123"].sample(random: rng.instance_variable_get(:@random)) end |
#generate_invalid(rng, context, args) ⇒ Object
37 38 39 |
# File 'lib/synthra/types/personal_names/identifiers.rb', line 37 def generate_invalid(rng, context, args) [nil, 123, [], {}].sample(random: rng.instance_variable_get(:@random)) end |
#generate_random(rng, context, args) ⇒ String
Generate random username
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/synthra/types/personal_names/identifiers.rb', line 17 def generate_random(rng, context, args) prefix = args[:prefix] || "" length = args[:length] || rng.int(6, 12) # Use first_name/last_name from context if available base = if context && (context["first_name"] || context[:first_name]) first = (context["first_name"] || context[:first_name]).to_s.downcase last = (context["last_name"] || context[:last_name]).to_s.downcase "#{first}#{last}".gsub(/[^a-z0-9]/, "") else generate_random_base(rng, length - prefix.length) end "#{prefix}#{base}" end |
#generate_random_base(rng, length) ⇒ Object (private)
43 44 45 46 |
# File 'lib/synthra/types/personal_names/identifiers.rb', line 43 def generate_random_base(rng, length) chars = ('a'..'z').to_a + ('0'..'9').to_a length.times.map { rng.sample(chars) }.join end |