1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
# frozen_string_literal: true
module Faker
class Name < Base
flexible :name
class << self
##
# Produces a random name.
#
# @return [String]
#
# @example
# Faker::Name.name #=> "Tyshawn Johns Sr."
#
# @faker.version 0.9.0
def name
parse('name.name')
end
##
# Produces a random name with middle name.
#
# @return [String]
#
# @example
# Faker::Name.name_with_middle #=> "Aditya Elton Douglas"
#
# @faker.version 1.6.4
def name_with_middle
parse('name.name_with_middle')
end
##
# Produces a random first name.
#
# @return [String]
#
# @example
# Faker::Name.first_name #=> "Kaci"
#
# @faker.version 0.9.0
def first_name
if parse('name.first_name').empty?
fetch('name.first_name')
else
parse('name.first_name')
end
end
##
# Produces a random male first name.
#
# @return [String]
#
# @example
# Faker::Name.male_first_name #=> "Edward"
#
# @faker.version 1.9.1
def male_first_name
fetch('name.male_first_name')
end
alias first_name_men male_first_name
alias masculine_name male_first_name
##
# Produces a random female first name.
#
# @return [String]
#
# @example
# Faker::Name.female_first_name #=> "Natasha"
#
# @faker.version 1.9.1
def female_first_name
fetch('name.female_first_name')
end
alias first_name_women female_first_name
alias feminine_name female_first_name
##
# Produces a random gender neutral first name.
#
# @return [String]
#
# @example
# Faker::Name.neutral_first_name #=> "Casey"
#
# @faker.version 2.13.0
def neutral_first_name
fetch('name.neutral_first_name')
end
alias first_name_neutral neutral_first_name
alias gender_neutral_first_name neutral_first_name
##
# Produces a random last name.
#
# @return [String]
#
# @example
# Faker::Name.last_name #=> "Ernser"
#
# @faker.version 0.9.0
def last_name
parse('name.last_name')
end
alias middle_name last_name
##
# Produces a random name prefix.
#
# @return [String]
#
# @example
# Faker::Name.prefix #=> "Mr."
#
# @faker.version 0.9.0
def prefix
fetch('name.prefix')
end
##
# Produces a random name suffix.
#
# @return [String]
#
# @example
# Faker::Name.suffix #=> "IV"
#
# @faker.version 0.9.0
def suffix
fetch('name.suffix')
end
##
# Produces random initials.
#
# @param number [Integer] Number of digits that the generated initials should have.
# @return [String]
#
# @example
# Faker::Name.initials #=> "NJM"
# Faker::Name.initials(number: 2) #=> "NM"
#
# @faker.version 1.8.5
def initials(number: 3)
(0...number).map { rand(65..90).chr }.join
end
end
end
end
|