diff --git a/doc/default/chile_rut.md b/doc/default/chile_rut.md index 0daf64cb9e..2496131bc2 100644 --- a/doc/default/chile_rut.md +++ b/doc/default/chile_rut.md @@ -19,4 +19,12 @@ Faker::ChileRut.dv #=> "k" # check_digit is an alias for dv, for English speaking devs Faker::ChileRut.rut #=> 30528772 Faker::ChileRut.check_digit #=> "5" + +# Returns full rut +# Keyword arguments: min_rut +# Keyword arguments: fixed +Faker::ChileRut.full_rut #=> "30686957-4" +Faker::ChileRut.full_rut(min_rut: 20890156) #=> "20890156-4" +Faker::ChileRut.full_rut(min_rut: 20890156, formatted: true) #=> "20.890.156-4" +Faker::ChileRut.full_rut(min_rut: 30686957, fixed: true) #=> "30686957-4" ``` diff --git a/lib/faker/default/chile_rut.rb b/lib/faker/default/chile_rut.rb index ce0c529ee7..1ec982c0dc 100644 --- a/lib/faker/default/chile_rut.rb +++ b/lib/faker/default/chile_rut.rb @@ -82,14 +82,18 @@ def check_digit # Faker::ChileRut.full_rut(min_rut: 20890156) #=> "30686957-4" # Faker::ChileRut.full_rut(min_rut: 30686957, fixed: true) #=> "30686957-4" # - # @faker.version 1.9.2 - def full_rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 0, fixed: false) + # @faker.version next + def full_rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 0, fixed: false, formatted: false) warn_for_deprecated_arguments do |keywords| keywords << :min_rut if legacy_min_rut != NOT_GIVEN keywords << :fixed if legacy_fixed != NOT_GIVEN end - "#{rut(min_rut: min_rut, fixed: fixed)}-#{dv}" + if formatted + "#{rut(min_rut: min_rut, fixed: fixed).to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1.').reverse}-#{dv}" + else + "#{rut(min_rut: min_rut, fixed: fixed)}-#{dv}" + end end attr_reader :last_rut diff --git a/test/faker/default/test_faker_chile_rut.rb b/test/faker/default/test_faker_chile_rut.rb index e78fc5918e..99d9105748 100644 --- a/test/faker/default/test_faker_chile_rut.rb +++ b/test/faker/default/test_faker_chile_rut.rb @@ -24,4 +24,9 @@ def test_check_digit assert @tester.rut(min_rut: 30_686_957, fixed: true) == 30_686_957 assert @tester.dv == '4' end + + def test_full_formatted_rut + assert @tester.full_rut(min_rut: 30_686_957, fixed: true, formatted: true).split('-')[0] == '30.686.957' + assert @tester.dv == '4' + end end