wolf_core 1.0.115 → 1.0.117

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: 3ff74bb9eba53a4540acdcb148900e1aea1de729236f1bc3b891439b0e47e012
4
- data.tar.gz: bab2c98d8e5e3c5aa2b0e855d9c3dc4a0d69b539dcb5be35a85b89079091ceab
3
+ metadata.gz: d5004d58979151e4947e2a61786d043c7635d186bd728336eef3f4a58bbe13a3
4
+ data.tar.gz: adeb42d7f1b34a1c4295a0885d46e213c42b9e6b0a093f233a09440d4690d608
5
5
  SHA512:
6
- metadata.gz: 683bf83c11ab5b0aedd35efc765310329c52aed548387d38f24e0870e961ff4e78094f5892e713a817deaff075bea1ad9a1cb9d8a1b3b17223137d43abe1bf2a
7
- data.tar.gz: 07ac11a715aa37435bef097acdf02ff1480f2a10e81d85d48eb7537c976800f15ea442cb891ee6409f3832b723168ab3254d310085558f72ec06d06ab4495c57
6
+ metadata.gz: 65642d69aabe2b53dd065cc02396682e8dc80a5ae089fb17aa901df46fee5aef7c095f8fad7513f9d1974377155a464ae7cc174b87b84fd68f657e14e26fec46
7
+ data.tar.gz: 1b6256845e536ddfe61437460142167b6c4dff992f00e2f25370891dc205caf455c23600fd0ba27db75f7b32de0becdd8793e04bc88816d9a0c531cdd87cb959
@@ -2,42 +2,49 @@ module WolfCore
2
2
  module StringUtils
3
3
  def camelcase_to_spaces(str)
4
4
  return if str.nil?
5
+
5
6
  str.to_s.gsub(/([A-Z])/, ' \1').strip.downcase.capitalize
6
7
  end
7
8
 
8
9
  def to_snake_case(str)
9
10
  return if str.nil?
10
- str.to_s.gsub(/\s+/, '_').downcase
11
+
12
+ str.to_s.gsub(/\s+/, "_").downcase
11
13
  end
12
14
 
13
15
  def to_kebab_case(str)
14
16
  return if str.nil?
15
- str.to_s.gsub(/\s+/, '-').downcase
17
+
18
+ str.to_s.gsub(/\s+/, "-").downcase
16
19
  end
17
20
 
18
21
  def remove_non_alphanumeric_chars(str, exceptions: nil)
19
22
  return if str.nil?
23
+
20
24
  exceptions ||= []
21
25
  exceptions = Array(exceptions)
22
26
  escaped_exceptions = exceptions.map { |char| Regexp.escape(char) }.join
23
27
  regex = /[^a-zA-Z0-9#{escaped_exceptions}]/
24
- str.to_s.gsub(regex, '')
28
+ str.to_s.gsub(regex, "")
25
29
  end
26
30
 
27
31
  def clean_phone_number(phone)
28
32
  return if phone.nil?
29
- cleaned_phone = phone.to_s.gsub(/\D/, '')
30
- last_ten_digits = cleaned_phone[-10, 10]
31
- last_ten_digits
33
+
34
+ cleaned_phone = phone.to_s.gsub(/\D/, "")
35
+ cleaned_phone[-10, 10]
32
36
  end
33
37
 
34
38
  def remove_blank_spaces(str)
35
39
  return if str.nil?
36
- str.to_s.gsub(/\s+/, '')
40
+
41
+ str.to_s.gsub(/\s+/, "")
37
42
  end
38
43
 
39
44
  def hash_str_to_json(hash_str)
40
- hash_str&.to_s&.gsub('=>', ':')&.gsub('\"', '"')&.gsub('{', '{')&.gsub('}', '}')&.gsub(/(\w+)(?=\s*:)/) { |key| "\"#{key}\"" }
45
+ hash_str&.to_s&.gsub("=>", ":")&.gsub('\"', '"')&.gsub("{", "{")&.gsub("}", "}")&.gsub(/(\w+)(?=\s*:)/) do |key|
46
+ "\"#{key}\""
47
+ end
41
48
  end
42
49
 
43
50
  def deep_parse_json(input)
@@ -54,8 +61,9 @@ module WolfCore
54
61
 
55
62
  def valid_url?(url)
56
63
  return false unless url.instance_of?(String)
64
+
57
65
  uri = URI.parse(url)
58
- uri.is_a?(URI::HTTP) || uri.is_a?(URI::HTTPS) && !uri.host.nil?
66
+ uri.is_a?(URI::HTTP) || (uri.is_a?(URI::HTTPS) && !uri.host.nil?)
59
67
  rescue URI::InvalidURIError
60
68
  false
61
69
  end
@@ -63,8 +71,62 @@ module WolfCore
63
71
  def base64_encoded?(str)
64
72
  return false unless str.is_a?(String) && str.length % 4 == 0
65
73
 
66
- base64_regex = /^[A-Za-z0-9+\/]+={0,2}$/
74
+ base64_regex = %r{^[A-Za-z0-9+/]+={0,2}$}
67
75
  str.match?(base64_regex)
68
76
  end
77
+
78
+ def valid_json?(str)
79
+ return false unless str.is_a?(String)
80
+
81
+ JSON.parse(str)
82
+ true
83
+ rescue JSON::ParserError
84
+ false
85
+ end
86
+
87
+ def split_address(address_string)
88
+ address_string = address_string&.dup
89
+ address_string ||= ""
90
+ address = { street: nil, city: nil, state: nil, zip: nil }
91
+ city_and_state_regex_found = false
92
+
93
+ city_and_state_regex = /\b([A-Za-z\s]+),\s*([A-Za-z]{2})\b/
94
+ zip_regex = /\d{5}(?:-\d{4})?$/
95
+ street_regex = /\A([^,]+)/
96
+ state_regex = /\b[A-Za-z]{2}\b/
97
+ city_regex = /\b[a-zA-Z0-9\s]{2,}\b/
98
+
99
+ if match_data = address_string.match(city_and_state_regex)
100
+ address[:city] = match_data[1].strip
101
+ address[:state] = match_data[2].strip
102
+ address_string.sub!(city_and_state_regex, "")
103
+ city_and_state_regex_found = true
104
+ end
105
+
106
+ if zip_match = address_string.match(zip_regex)
107
+ address[:zip] = zip_match[0].strip
108
+ address_string.sub!(zip_regex, "")
109
+ end
110
+
111
+ if street_match = address_string.match(street_regex)
112
+ address[:street] = street_match[0].strip
113
+ address[:street] = nil if address[:street].empty?
114
+ address_string.sub!(street_regex, "")
115
+ end
116
+
117
+ return address if city_and_state_regex_found
118
+
119
+ if state_match = address_string.match(state_regex)
120
+ address[:state] = state_match[0].strip
121
+ address_string.sub!(state_regex, "")
122
+ end
123
+
124
+ if city_match = address_string.match(city_regex)
125
+ address[:city] = city_match[0].strip
126
+ address_string.sub!(city_regex, "")
127
+ end
128
+
129
+ address
130
+ end
69
131
  end
70
- end
132
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WolfCore
4
- VERSION = "1.0.115"
4
+ VERSION = "1.0.117"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wolf_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.115
4
+ version: 1.0.117
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Roncallo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-04-22 00:00:00.000000000 Z
11
+ date: 2025-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty