tin_valid 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fb98f7f433b3c6a6755c0caa0835c75ed58408fee17ee0e96a083603fd965d5
4
- data.tar.gz: 2eb697ac67268456c7cd8ff346144b3cbbfcb2b4bbff8052065ad6b7789b0d15
3
+ metadata.gz: a5cf4c82de8a9175666cdb8ed766135735e98225912769b8c9b8a56aeb50b5a4
4
+ data.tar.gz: a0a50b4cdcfd8486499fc57151bb6f082bebed988e390f0b9c1eedea61cb4840
5
5
  SHA512:
6
- metadata.gz: ea7cd37992f808250a153fa5be6728489438136701318e8397d1822512efaddfd8ed395534cdc0e62f8523f9ec225cb151f37409ea741accdcd8c233e7858e5f
7
- data.tar.gz: 91eefad78dd3d3219cb7e4add5b5022cd72f62e09a7d6fa5b8b9279e60e165a7620ca2ab25fe4ccb94da5b629f6251e814aeeff0007399830b275be3b99e5ce7
6
+ metadata.gz: 115f39ab89c389df482328d9bb1ea39e75f8b587d9d481122fe4f3477f48a2756815057cdf1325ae027a0f48ee0b964fc9bbcde67475aa3e2859508d97c937aa
7
+ data.tar.gz: 9ff5a18c6d0c22eebadd8bccdc24bc1b99f375b0a382d8c307fa9ac13e27baa1f3cc548f9d01e8ba6e299ed526986aeba205f5dcdd30f40b3a1efde18ddabcf4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.2.1] - 2025-05-22
4
+
5
+ Fixes:
6
+ - Accept `/` for Czechia 🇨🇿
7
+ - `TinValid::Tin.new` accept symbols or uppercase country codes.
8
+ - `kind` argument accept symbols.
9
+
3
10
  ## [1.2.0] - 2025-05-14
4
11
 
5
12
  Features:
@@ -7,18 +14,19 @@ Features:
7
14
  - Add `#siren?` and `#siret?` on `TinValid::FranceTin`
8
15
 
9
16
  Fixes:
10
- - Accept SIRET for France
17
+ - Accept SIRET for France 🇫🇷
11
18
 
12
19
  ## [1.1.2] - 2025-05-06
13
20
 
14
21
  Fixes:
15
- - Fix Luxembourg check
16
- - Accept SIREN for France
22
+ - Fix Luxembourg check 🇱🇺
23
+ - Accept SIREN for France 🇫🇷
17
24
 
18
25
  ## [1.1.1] - 2025-04-28
19
26
 
20
27
  Fixes:
21
- - Fix birth date check for Italy when year is between 1900..1909 or 2000..2009
28
+ - Fix birth date check for Italy when year is between 1900..1909 or between
29
+ 2000..2009 🇮🇹
22
30
 
23
31
  ## [1.1.0] - 2025-04-18
24
32
 
data/README.md CHANGED
@@ -54,7 +54,7 @@ gem install tin_valid
54
54
 
55
55
  ## Usage
56
56
 
57
- Check a TIN by providing the country code as a lowercase string.
57
+ Check a TIN by providing the country code.
58
58
 
59
59
  Also accepts the following optional arguments:
60
60
 
@@ -67,7 +67,7 @@ TinValid::Tin.new(country_code: "fr", tin: "3023217600053").valid?
67
67
 
68
68
  You can also call countries individually:
69
69
 
70
- ### Austria (at)
70
+ ### Austria 🇦🇹 (at)
71
71
 
72
72
  ```rb
73
73
  TinValid::AustriaTin.new(
@@ -75,7 +75,7 @@ TinValid::AustriaTin.new(
75
75
  ).valid?
76
76
  ```
77
77
 
78
- ### Belgium (be)
78
+ ### Belgium 🇧🇪 (be)
79
79
 
80
80
  `birth_date` is optional
81
81
 
@@ -86,7 +86,7 @@ TinValid::BelgiumTin.new(
86
86
  ).valid?
87
87
  ```
88
88
 
89
- ### Bulgaria (bg)
89
+ ### Bulgaria 🇧🇬 (bg)
90
90
 
91
91
  `birth_date` is optional
92
92
 
@@ -97,7 +97,7 @@ TinValid::BulgariaTin.new(
97
97
  ).valid?
98
98
  ```
99
99
 
100
- ### Croatia (hr)
100
+ ### Croatia 🇭🇷 (hr)
101
101
 
102
102
  ```rb
103
103
  TinValid::CroatiaTin.new(
@@ -105,7 +105,7 @@ TinValid::CroatiaTin.new(
105
105
  ).valid?
106
106
  ```
107
107
 
108
- ### Cyprus (cy)
108
+ ### Cyprus 🇨🇾 (cy)
109
109
 
110
110
  `kind` is optional and can be `"individual"` or `"company"`
111
111
 
@@ -113,18 +113,18 @@ TinValid::CroatiaTin.new(
113
113
  TinValid::CyprusTin.new(tin: "00123123T", kind: "individual").valid?
114
114
  ```
115
115
 
116
- ### Czechia (cz)
116
+ ### Czechia 🇨🇿 (cz)
117
117
 
118
118
  `birth_date` is optional
119
119
 
120
120
  ```rb
121
121
  TinValid::CzechiaTin.new(
122
- tin: "420901999",
122
+ tin: "420901/999",
123
123
  birth_date: Date.new(1942, 9, 1),
124
124
  ).valid?
125
125
  ```
126
126
 
127
- ### Denmark (dk)
127
+ ### Denmark 🇩🇰 (dk)
128
128
 
129
129
  `birth_date` is optional
130
130
 
@@ -135,7 +135,7 @@ TinValid::DenmarkTin.new(
135
135
  ).valid?
136
136
  ```
137
137
 
138
- ### Estonia (ee)
138
+ ### Estonia 🇪🇪 (ee)
139
139
 
140
140
  `birth_date` is optional
141
141
 
@@ -146,7 +146,7 @@ TinValid::EstoniaTin.new(
146
146
  ).valid?
147
147
  ```
148
148
 
149
- ### Finland (fi)
149
+ ### Finland 🇫🇮 (fi)
150
150
 
151
151
  `birth_date` is optional
152
152
 
@@ -157,7 +157,7 @@ TinValid::FinlandTin.new(
157
157
  ).valid?
158
158
  ```
159
159
 
160
- ### France (fr)
160
+ ### France 🇫🇷 (fr)
161
161
 
162
162
  ```rb
163
163
  TinValid::FranceTin.new(tin: "3023217600053").valid?
@@ -171,31 +171,31 @@ TinValid::FranceTin.new(tin: "732829320").siren?
171
171
  TinValid::FranceTin.new(tin: "73282932000074").siret?
172
172
  ```
173
173
 
174
- ### Germany (de)
174
+ ### Germany 🇩🇪 (de)
175
175
 
176
176
  ```rb
177
177
  TinValid::GermanyTin.new(tin: "5133081508159").valid?
178
178
  ```
179
179
 
180
- ### Greece (gr)
180
+ ### Greece 🇬🇷 (gr)
181
181
 
182
182
  ```rb
183
183
  TinValid::GreeceTin.new(tin: "999999999").valid?
184
184
  ```
185
185
 
186
- ### Hungary (hu)
186
+ ### Hungary 🇭🇺 (hu)
187
187
 
188
188
  ```rb
189
189
  TinValid::HungaryTin.new(tin: "8071592153").valid?
190
190
  ```
191
191
 
192
- ### Ireland (ie)
192
+ ### Ireland 🇮🇪 (ie)
193
193
 
194
194
  ```rb
195
195
  TinValid::IrelandTin.new(tin: "1234567T").valid?
196
196
  ```
197
197
 
198
- ### Italy (it)
198
+ ### Italy 🇮🇹 (it)
199
199
 
200
200
  `birth_date` is optional
201
201
 
@@ -206,7 +206,7 @@ TinValid::ItalyTin.new(
206
206
  ).valid?
207
207
  ```
208
208
 
209
- ### Latvia (lv)
209
+ ### Latvia 🇱🇻 (lv)
210
210
 
211
211
  `birth_date` is optional
212
212
 
@@ -217,7 +217,7 @@ TinValid::LatviaTin.new(
217
217
  ).valid?
218
218
  ```
219
219
 
220
- ### Lithuania (lt)
220
+ ### Lithuania 🇱🇹 (lt)
221
221
 
222
222
  `birth_date` is optional
223
223
 
@@ -228,7 +228,7 @@ TinValid::LithuaniaTin.new(
228
228
  ).valid?
229
229
  ```
230
230
 
231
- ### Luxembourg (lu)
231
+ ### Luxembourg 🇱🇺 (lu)
232
232
 
233
233
  `birth_date` is optional
234
234
 
@@ -239,19 +239,19 @@ TinValid::LuxembourgTin.new(
239
239
  ).valid?
240
240
  ```
241
241
 
242
- ### Malta (mt)
242
+ ### Malta 🇲🇹 (mt)
243
243
 
244
244
  ```rb
245
245
  TinValid::MaltaTin.new(tin: "1234567A").valid?
246
246
  ```
247
247
 
248
- ### Netherlands (nl)
248
+ ### Netherlands 🇳🇱 (nl)
249
249
 
250
250
  ```rb
251
251
  TinValid::NetherlandsTin.new(tin: "174559434").valid?
252
252
  ```
253
253
 
254
- ### Poland (pl)
254
+ ### Poland 🇵🇱 (pl)
255
255
 
256
256
  `birth_date` is optional
257
257
 
@@ -262,13 +262,13 @@ TinValid::PolandTin.new(
262
262
  ).valid?
263
263
  ```
264
264
 
265
- ### Portugal (pt)
265
+ ### Portugal 🇵🇹 (pt)
266
266
 
267
267
  ```rb
268
268
  TinValid::PortugalTin.new(tin: "299999998").valid?
269
269
  ```
270
270
 
271
- ### Romania (ro)
271
+ ### Romania 🇷🇴 (ro)
272
272
 
273
273
  `birth_date` is optional
274
274
 
@@ -279,7 +279,7 @@ TinValid::RomaniaTin.new(
279
279
  ).valid?
280
280
  ```
281
281
 
282
- ### Slovakia (sk)
282
+ ### Slovakia 🇸🇰 (sk)
283
283
 
284
284
  `birth_date` is optional
285
285
 
@@ -290,19 +290,19 @@ TinValid::SlovakiaTin.new(
290
290
  ).valid?
291
291
  ```
292
292
 
293
- ### Slovenia (si)
293
+ ### Slovenia 🇸🇮 (si)
294
294
 
295
295
  ```rb
296
296
  TinValid::SloveniaTin.new(tin: "15012557").valid?
297
297
  ```
298
298
 
299
- ### Spain (es)
299
+ ### Spain 🇪🇸 (es)
300
300
 
301
301
  ```rb
302
302
  TinValid::SpainTin.new(tin: "54237A").valid?
303
303
  ```
304
304
 
305
- ### Sweden (se)
305
+ ### Sweden 🇸🇪 (se)
306
306
 
307
307
  `birth_date` is optional
308
308
 
@@ -313,7 +313,7 @@ TinValid::SwedenTin.new(
313
313
  ).valid?
314
314
  ```
315
315
 
316
- ### United Kingdom (gb)
316
+ ### United Kingdom 🇬🇧 (gb)
317
317
 
318
318
  ```rb
319
319
  TinValid::UnitedKingdomTin.new(tin: "9234567890").valid?
@@ -4,7 +4,7 @@ module TinValid
4
4
  class CyprusTin
5
5
  def initialize(tin:, kind: nil)
6
6
  @tin = tin
7
- @kind = kind
7
+ @kind = kind.to_s
8
8
  end
9
9
 
10
10
  attr_reader :tin, :kind
@@ -20,6 +20,7 @@ module TinValid
20
20
  (?<year>[0-9]{2})
21
21
  (?<month>[0156][0-9])
22
22
  (?<day>[0-3][0-9])
23
+ /?
23
24
  [0-9]{3}
24
25
  \z
25
26
  }x
@@ -30,6 +31,7 @@ module TinValid
30
31
  (?<year>[0-9]{2})
31
32
  (?<month>[0-8][0-9])
32
33
  (?<day>[0-3][0-9])
34
+ /?
33
35
  [0-9]{4}
34
36
  \z
35
37
  }x
data/lib/tin_valid/tin.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  module TinValid
4
4
  class Tin
5
5
  def initialize(country_code:, tin:, birth_date: nil, kind: nil)
6
- @country_code = country_code
6
+ @country_code = country_code.to_s.downcase
7
7
  @tin = tin
8
8
  @birth_date = birth_date
9
9
  @kind = kind
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TinValid
4
- VERSION = "1.2.0"
4
+ VERSION = "1.2.1"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tin_valid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunny Ripert
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-05-14 00:00:00.000000000 Z
10
+ date: 2025-05-22 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  email:
13
13
  - sunny@sunfox.org