diff --git a/CHANGELOG.md b/CHANGELOG.md index 683313e..708b9c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Fixes: - Fix Belgium to ignore `-` and `.` 🇧🇪 +- Fix Czechia to accept `CZ` prefix 🇨🇿 ## [1.3.0] - 2025-12-12 diff --git a/lib/tin_valid/czechia_tin.rb b/lib/tin_valid/czechia_tin.rb index 8ed1ff5..d5e2f83 100644 --- a/lib/tin_valid/czechia_tin.rb +++ b/lib/tin_valid/czechia_tin.rb @@ -37,10 +37,12 @@ def valid? = valid_v1? || valid_v2? }x private_constant :MATCHER_V2 + def normalized = @normalized ||= tin&.delete_prefix("CZ") + def valid_v1? - match = MATCHER_V1.match(tin) + match = MATCHER_V1.match(normalized) return false unless match - return false if tin == "000000000" + return false if normalized == "000000000" return true if birth_date.nil? return false if year_of_birth >= 1954 @@ -55,9 +57,9 @@ def valid_v1? end def valid_v2? - match = MATCHER_V2.match(tin) + match = MATCHER_V2.match(normalized) return false unless match - return false if tin == "0000000000" + return false if normalized == "0000000000" return true if birth_date.nil? return false if year_of_birth < 1954 diff --git a/spec/tin_valid/czechia_tin_spec.rb b/spec/tin_valid/czechia_tin_spec.rb index 0437f7c..9a1fef2 100644 --- a/spec/tin_valid/czechia_tin_spec.rb +++ b/spec/tin_valid/czechia_tin_spec.rb @@ -4,6 +4,7 @@ describe "#valid?" do valid_values = [ ["420901999", nil], + ["CZ420901999", nil], ["420901/999", nil], ["0009019999", nil], ["000901/9999", nil],