valigator-csv 4.0.2 → 4.2.0

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: 1c81930e6cf0ab8d29c5484d39b3fc88a41b27f16b5509f16f7180a34a77bef2
4
- data.tar.gz: b06726dc8ee7ff1d2bc33ea75fdae9fd8277b8868c8af1826121616cd1cd13eb
3
+ metadata.gz: a13adb54aea418ff9ee74e64cdc0c0fdb578b9490eaef39c3eb6e362df440690
4
+ data.tar.gz: 17496e16ef3d131d96686bf8af7cb5c00342a7d0ab55b7f8f13d13f03eb5b588
5
5
  SHA512:
6
- metadata.gz: c22abc336fc802980400ef752f64502a3f7dc313cfc75db4c46f6aea85939107f735f3b9bb367ba00edc5f8c03bcda659af7421efc4ac1aac4ac9486cf064568
7
- data.tar.gz: 27fd002280d0ef42384ff3ee27ccd4a8f8333aa7a3da62a0fa4d46480ab4c8684b57954f77f2eea937d495311a2c451019102bc743279156aa6800238165bada
6
+ metadata.gz: 5b48d916f58c416aa772d205dd202ab28c14732da799585d2b768a8d8a0f4813f609c4864a9889807b1e18cd3983ff69c0a32c5cca91528f199bc2129a8c7162
7
+ data.tar.gz: d15e8e32b2ded4f0a8c3fb1e14763e7bac1ac3a7b010bf575d6c262c0cba252dbabc2edfa049064de093f1a6934afa8461f9b92700c15bdcc1fba1f55944244e
@@ -28,16 +28,35 @@ module Valigator
28
28
 
29
29
  private
30
30
 
31
+ def strict_parse_date(value, format)
32
+ today = ::Date.today.strftime(format).to_s
33
+ trimmed_value = value.nil? || value == "" ? '' : value.to_s[0, today.length]
34
+ date = ::Date.strptime(trimmed_value, format)
35
+ if date.strftime(format) != trimmed_value
36
+ raise ArgumentError, "Date does not match the expected format: #{value}"
37
+ end
38
+ date
39
+ end
40
+
31
41
  def format
32
42
  @options[:format]
33
43
  end
34
44
 
35
-
45
+ def strict_validate_date_format
46
+ @options[:strict_validate_date_format] || false
47
+ end
36
48
 
37
49
  def parse(value)
38
- format ? ::Date.strptime(value.to_s, format) : ::Date.parse(value.to_s)
50
+ if format
51
+ if strict_validate_date_format
52
+ strict_parse_date(value.to_s, format)
53
+ else
54
+ ::Date.strptime(value.to_s, format)
55
+ end
56
+ else
57
+ ::Date.parse(value.to_s)
58
+ end
39
59
  end
40
-
41
60
  end
42
61
  end
43
62
  end
@@ -1,5 +1,5 @@
1
1
  module Valigator
2
2
  module CSV
3
- VERSION = "4.0.2"
3
+ VERSION = "4.2.0"
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.0.2
4
+ version: 4.2.0
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: 2022-06-13 00:00:00.000000000 Z
14
+ date: 2025-06-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler