Method: Faker::Code.nric

Defined in:
lib/faker/default/code.rb

.nric(min_age: 18, max_age: 65) ⇒ String

Produces a random NRIC (National Registry Identity Card) code. By default generates a Singaporean NRIC ID for someone who is born between the age of 18 and 65.

Examples:

Faker::Code.nric(min_age: 25, max_age: 50) #=> "S9347283G"
Faker::Code.nric(max_age: 55) #=> "S7876903C"
Faker::Code.nric(min_age: 25) #=> "S6281697Z"
Faker::Code.nric #=> "S6372958B"

Parameters:

  • min_age (Integer) (defaults to: 18)

    the min age of the person in years

  • max_age (Integer) (defaults to: 65)

    the max age of the person in years

Returns:



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/faker/default/code.rb', line 94

def nric(min_age: 18, max_age: 65)
  birthyear = Date.birthday(min_age: min_age, max_age: max_age).year

  generate(:string) do |g|
    g.computed(name: :prefix) do
      if birthyear < 2000
        'S'
      else
        'T'
      end
    end
    g.computed(name: :yy) do
      birthyear.to_s[-2..]
    end
    g.int(name: :values, length: 5)
    g.computed(name: :check, deps: %i[prefix yy values]) do |prefix, yy, values|
      generate_nric_check_alphabet("#{yy}#{values}", prefix)
    end
  end
end