Sha256: 9f7728bb05567dbd362e2f4127ccc17e5298304fd08fe813f0b069c4531bf025

Contents?: true

Size: 706 Bytes

Versions: 10

Compression:

Stored size: 706 Bytes

Contents

# encoding: utf-8

module FFaker
  module IdentificationKr
    extend ModuleUtils
    extend self

    # Resident Registration Number
    # http://ko.wikipedia.org/wiki/%EC%A3%BC%EB%AF%BC%EB%93%B1%EB%A1%9D%EB%B2%88%ED%98%B8
    def rrn
      birth = fetch_sample([*Date.new(1970, 1, 1)..Date.new(1999, 12, 31)]).strftime('%y%d%m')
      sex = fetch_sample([1, 2])
      loc = FFaker.numerify("#{fetch_sample([*'00'..'95'])}###")
      a, b, c, d, e, f, g, h, i, j, k, l = "#{birth}#{sex}#{loc}".split(//).map(&:to_i)
      checksum = (11 - (2 * a + 3 * b + 4 * c + 5 * d + 6 * e + 7 * f + 8 * g + 9 * h + 2 * i + 3 * j + 4 * k + 5 * l) % 11) % 10
      "#{birth}-#{sex}#{loc}#{checksum}"
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ffaker-2.11.0 lib/ffaker/identification_kr.rb
ffaker-2.10.0 lib/ffaker/identification_kr.rb
ffaker-2.9.0 lib/ffaker/identification_kr.rb
ffaker-2.8.1 lib/ffaker/identification_kr.rb
ffaker-2.8.0 lib/ffaker/identification_kr.rb
ffaker-2.7.0 lib/ffaker/identification_kr.rb
ffaker-2.6.0 lib/ffaker/identification_kr.rb
ffaker-2.5.0 lib/ffaker/identification_kr.rb
ffaker-2.4.0 lib/ffaker/identification_kr.rb
ffaker-2.3.0 lib/ffaker/identification_kr.rb