File: name.rb

package info (click to toggle)
ruby-faker 3.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,360 kB
  • sloc: ruby: 20,654; makefile: 6; sh: 6
file content (152 lines) | stat: -rw-r--r-- 3,325 bytes parent folder | download
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