From 444857759c6acc6424b2938eba21b91122960b72 Mon Sep 17 00:00:00 2001 From: Sunny Ripert Date: Mon, 5 Jan 2026 16:07:59 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20Belgium=20to=20ignore=20`-`=20and=20`.`?= =?UTF-8?q?=20=F0=9F=87=A7=F0=9F=87=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ lib/tin_valid/belgium_tin.rb | 5 +++-- spec/tin_valid/belgium_tin_spec.rb | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index def070c..683313e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## [Unreleased] +Fixes: +- Fix Belgium to ignore `-` and `.` 🇧🇪 + ## [1.3.0] - 2025-12-12 Features: diff --git a/lib/tin_valid/belgium_tin.rb b/lib/tin_valid/belgium_tin.rb index 5d460e0..fdf1723 100644 --- a/lib/tin_valid/belgium_tin.rb +++ b/lib/tin_valid/belgium_tin.rb @@ -12,7 +12,7 @@ def initialize(tin:, birth_date: nil) def valid? return false unless match - number = tin[..-3] + number = normalized[..-3] valid_check?("19#{year}", month, day, number) || valid_check?("20#{year}", month, day, "2#{number}") end @@ -32,7 +32,8 @@ def valid? }x private_constant :MATCHER - def match = @match ||= MATCHER.match(tin) + def match = @match ||= MATCHER.match(normalized) + def normalized = @normalized ||= tin&.gsub(/[-.]+/, "") def year = match[:year] def month = match[:month] def day = match[:day] diff --git a/spec/tin_valid/belgium_tin_spec.rb b/spec/tin_valid/belgium_tin_spec.rb index e60ebec..85d361b 100644 --- a/spec/tin_valid/belgium_tin_spec.rb +++ b/spec/tin_valid/belgium_tin_spec.rb @@ -5,6 +5,7 @@ valid_values = [ ["00012511119", nil], ["00012511148", nil], + ["00.01.25-111.48", nil], ["00012511119", Date.new(1900, 1, 25)], ["00012511148", Date.new(2000, 1, 25)], ]