eco-helpers 2.7.0 → 2.7.2

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: e8917d285e4be19210a8ff91693ba0d75219e9817e0d302f756eba5c4d844b29
4
- data.tar.gz: 40de5a5f30c3c5fa6706930a96225be22a72b543b4eba68212b774f4dc4faec6
3
+ metadata.gz: 80de08cdef4ada108f4853214720d30985461e43309b9d442932975e7400bf20
4
+ data.tar.gz: c9174f97cd87f2c092f3ec892397fa53711a7efd61d8bbd456b3e68d62d8cf03
5
5
  SHA512:
6
- metadata.gz: b66c156aec53e2a1d1076afe988959e740d8842166e4b808ae8e93ebe97e4fbfc394b50fa6147d3950d4d1ccee427d54785136b0bfe2db3c7da9231fbfe54cf3
7
- data.tar.gz: abdf0f5b2188c3ca5f75403e019983133c80661d25b9176a2dcc373eea929d9a7193c073b358003010c7041ecf74df6bba130b558f0e0845c1689b0968eb309e
6
+ metadata.gz: dfc1092476a865d1902eaf1d241b27f4a141b72d287524f41107d13b9e447a1a83d04f278e1a04046e1435b7ce5b919e597a030c7c4eb8ccadb9431e90ace039
7
+ data.tar.gz: 4bf36063e2b8eca6051343a9b18ecbe61ac3e04c1789be8dc269d59f36c444690475ff0fdf42113ca74e035a41bef0d12e6d574a9845966ebbb73d4b303ef47d
data/CHANGELOG.md CHANGED
@@ -1,7 +1,21 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [2.7.0] - 2024-04-xx
4
+ ## [2.7.2] - 2024-04-xx
5
+
6
+ ### Added
7
+ - **Parsers**
8
+ - Native **number parser**, added _warning_ when number cannot be parsed
9
+
10
+ ### Changed
11
+ ### Fixed
12
+
13
+ ## [2.7.1] - 2024-04-23
14
+
15
+ ### Fixed
16
+ - `Eco::Language::AuxiliaLogger` prioritize `session.logger` in the object scoping process.
17
+
18
+ ## [2.7.0] - 2024-04-23
5
19
 
6
20
  ### Added
7
21
  - **support** for node **classifications** on
@@ -16,30 +16,22 @@ class Eco::API::Common::People::DefaultParsers::DateParser < Eco::API::Common::L
16
16
 
17
17
  def parse_date(value, attr:)
18
18
  return value.map {|val| parse_date(val, attr: attr)}.compact if value.is_a?(Enumerable)
19
+ return nil if blank?(value)
19
20
 
20
- return nil if value.nil?
21
21
  value = value.to_s.strip
22
- return nil if value.empty?
23
-
24
- if date?(value)
25
- Date.parse(value).then do |date|
26
- next date if valid_range?(date)
27
- wrong!(value, attr: attr, desc: 'Date out of range (1900-2099). Given: ')
28
- nil
29
- end
30
- else
31
- wrong!(value, attr: attr)
32
- nil
33
- end
22
+ return wrong!(value, attr: attr) unless date?(value)
23
+
24
+ date = Date.parse(value)
25
+ return date if valid_range?(date)
26
+
27
+ wrong!(value, attr: attr, desc: 'Date out of range (1900-2099). Given: ')
34
28
  rescue TypeError, Date::Error
35
29
  nil
36
30
  end
37
31
 
38
32
  def serialize_date(value)
39
33
  return value.map {|val| serialize_date(val)}.compact if value.is_a?(Enumerable)
40
-
41
- return nil if value.nil?
42
- return nil if value.to_s.strip.empty?
34
+ return nil if blank?(value)
43
35
  return value if value.is_a?(String)
44
36
  return nil unless [Date, Time].any? {|type| value.is_a?(type)}
45
37
  value&.strftime('%Y-%m-%d')
@@ -47,18 +39,6 @@ class Eco::API::Common::People::DefaultParsers::DateParser < Eco::API::Common::L
47
39
  nil
48
40
  end
49
41
 
50
- def wrong!(value, attr:, desc: "Can't make a date out of")
51
- return if wrong(attr).key?(value)
52
- wrong(attr)[value] = value
53
- log(:warn) { "#{desc} '#{value}' for '#{attr}'" }
54
- end
55
-
56
- def wrong(attr = nil)
57
- @wrong ||= {}
58
- return @wrong if attr.nil?
59
- @wrong[attr] ||= {}
60
- end
61
-
62
42
  def date?(value)
63
43
  return true if value.nil?
64
44
  return true if value.to_s.strip.empty?
@@ -74,6 +54,19 @@ class Eco::API::Common::People::DefaultParsers::DateParser < Eco::API::Common::L
74
54
  max_date >= date
75
55
  end
76
56
 
57
+ def wrong!(value, attr:, desc: "Can't make a date out of")
58
+ return if wrong(attr).key?(value)
59
+ wrong(attr)[value] = value
60
+ log(:warn) { "#{desc} '#{value}' for '#{attr}'" }
61
+ nil
62
+ end
63
+
64
+ def wrong(attr = nil)
65
+ @wrong ||= {}
66
+ return @wrong if attr.nil?
67
+ @wrong[attr] ||= {}
68
+ end
69
+
77
70
  def min_date
78
71
  @min_date ||= Date.parse(MIN_DATE)
79
72
  end
@@ -81,4 +74,10 @@ class Eco::API::Common::People::DefaultParsers::DateParser < Eco::API::Common::L
81
74
  def max_date
82
75
  @max_date ||= Date.parse(MAX_DATE)
83
76
  end
77
+
78
+ def blank?(value)
79
+ return true if value.nil?
80
+ return true if value.to_s.strip.empty?
81
+ false
82
+ end
84
83
  end
@@ -1,8 +1,8 @@
1
1
  class Eco::API::Common::People::DefaultParsers::NumericParser < Eco::API::Common::Loaders::Parser
2
2
  attribute :number
3
3
 
4
- def parser(value, _deps)
5
- parse_number(value)
4
+ def parser(value, deps)
5
+ parse_number(value, attr: deps['attr'])
6
6
  end
7
7
 
8
8
  def serializer(value, _deps)
@@ -11,13 +11,13 @@ class Eco::API::Common::People::DefaultParsers::NumericParser < Eco::API::Common
11
11
 
12
12
  private
13
13
 
14
- def parse_number(value)
15
- return value.map {|val| parse_number(val)}.compact if value.is_a?(Enumerable)
14
+ def parse_number(value, attr:)
15
+ return value.map {|val| parse_number(val, attr: attr)}.compact if value.is_a?(Enumerable)
16
+ return nil if blank?(value)
16
17
 
17
- return nil if value.nil?
18
18
  value = value.to_s.strip
19
- return nil if value.empty?
20
- return nil unless number?(value)
19
+ return wrong!(value, attr: attr) unless number?(value)
20
+
21
21
  value.to_f
22
22
  rescue ArgumentError, TypeError
23
23
  nil
@@ -28,4 +28,23 @@ class Eco::API::Common::People::DefaultParsers::NumericParser < Eco::API::Common
28
28
  rescue ArgumentError, TypeError
29
29
  false
30
30
  end
31
+
32
+ def wrong!(value, attr:, desc: "Can't make a number out of")
33
+ return if wrong(attr).key?(value)
34
+ wrong(attr)[value] = value
35
+ log(:warn) { "#{desc} '#{value}' for '#{attr}'" }
36
+ nil
37
+ end
38
+
39
+ def wrong(attr = nil)
40
+ @wrong ||= {}
41
+ return @wrong if attr.nil?
42
+ @wrong[attr] ||= {}
43
+ end
44
+
45
+ def blank?(value)
46
+ return true if value.nil?
47
+ return true if value.to_s.strip.empty?
48
+ false
49
+ end
31
50
  end
@@ -7,12 +7,14 @@ module Eco
7
7
 
8
8
  # Provides either an available logger or a basic one
9
9
  def logger
10
- if defined?(super)
11
- super
10
+ if instance_variable_defined?(:@session) && !@session.nil?
11
+ @session.logger
12
12
  elsif respond_to?(:session)
13
13
  session.logger
14
- elsif instance_variable_defined?(:@session)
15
- @session.logger
14
+ elsif Object.const_defined?(:ASSETS)
15
+ ASSETS.session.logger
16
+ elsif defined?(super)
17
+ super
16
18
  else
17
19
  @logger ||= Eco::Language::BasicLogger.new
18
20
  end
@@ -20,7 +22,7 @@ module Eco
20
22
 
21
23
  # Shortcut to logger.
22
24
  def log(level, &block)
23
- logger.send(level, &block) if logger
25
+ logger&.send(level, &block)
24
26
  end
25
27
  end
26
28
  end
data/lib/eco/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eco
2
- VERSION = "2.7.0"
2
+ VERSION = "2.7.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eco-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura