valigator-csv 4.1.0 → 4.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: bdc2bb7a78e854a5feada8cb1da820ce1a24db16f071eff6275123ce282233ea
4
- data.tar.gz: 9e3996bcf4db837f91c1ce4e12136f727aea3f899be210b519815cef52d2439f
3
+ metadata.gz: bf93c5f08993efcce7cdd391a7ed83d87d224602dccf7bf11b8b165685844805
4
+ data.tar.gz: d59a69097c2dbea97d873650647e2ec667b795af476f277182210b29a1ee5c56
5
5
  SHA512:
6
- metadata.gz: c739e1738706c156eac0c1188a976386c20f76fcdbfd623e2efad0c24b36b4c6a952e6528d77d377cdf1d6024adc44a85561d8686824d7f98483d8b3ccbc5d74
7
- data.tar.gz: 5a74f07210de512dd489d41c023702531b8687b737b31c1120877efdfd7e0ff7b63cd92b25f994dccf44363b0faaad93864366c1d686e428969b879461725a90
6
+ metadata.gz: 37759c4bcf306cdd361cb6fa1d21a1ff5f00daeef796d254a0aabfb6468aee7cddeb39c414f0df6954c74fb5b40cc023eb5ab6dfc0f3b3f111b9401f285dae65
7
+ data.tar.gz: 190dc2923377be0056fec332d41c77d0e166aff26e3bb18ddad0a34488f15085d51b385322acd3793d610259d9041f45a5666f20bc4cbbd441c48079ae296b6a
@@ -29,8 +29,15 @@ module Valigator
29
29
  private
30
30
 
31
31
  def strict_parse_date(value, format)
32
- date = ::Date.strptime(value, format)
33
- if date.strftime(format) != value
32
+ if value.nil? || value == ""
33
+ trimmed_value = ''
34
+ else
35
+ pattern = format.match?('\/|-|\.') ? '\d+\D\d+\D\d+' : '\d+'
36
+ match = value.match(pattern)
37
+ trimmed_value = match ? match[0] : ''
38
+ end
39
+ date = ::Date.strptime(trimmed_value, format)
40
+ if date.year < 1000
34
41
  raise ArgumentError, "Date does not match the expected format: #{value}"
35
42
  end
36
43
  date
@@ -40,12 +47,21 @@ module Valigator
40
47
  @options[:format]
41
48
  end
42
49
 
43
-
50
+ def strict_validate_date_format
51
+ @options[:strict_validate_date_format] || false
52
+ end
44
53
 
45
54
  def parse(value)
46
- format ? strict_parse_date(value.to_s, format) : ::Date.parse(value.to_s)
55
+ if format
56
+ if strict_validate_date_format
57
+ strict_parse_date(value.to_s, format)
58
+ else
59
+ ::Date.strptime(value.to_s, format)
60
+ end
61
+ else
62
+ ::Date.parse(value.to_s)
63
+ end
47
64
  end
48
-
49
65
  end
50
66
  end
51
67
  end
@@ -1,5 +1,5 @@
1
1
  module Valigator
2
2
  module CSV
3
- VERSION = "4.1.0"
3
+ VERSION = "4.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valigator-csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Nagy
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2025-06-05 00:00:00.000000000 Z
14
+ date: 2025-07-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler