wolf_core 1.0.115 → 1.0.116
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 +4 -4
- data/lib/wolf_core/utils/string_utils.rb +64 -11
- data/lib/wolf_core/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83e38b05b19b3452e9a7095eddfcc274756ff539ff764c815193a0a317c6b8c4
|
4
|
+
data.tar.gz: 07c1127692b7ffd1d3e905ccf837b71c29158d530cf258417f9ff47c663eead3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40e16d3c17496df8c270e4f34d69cf509163f412449dfeed9995628e9f20cc7e429e58e85668056941d140af55eef0b03f10abf2853f0e6b158b81d19cfafa58
|
7
|
+
data.tar.gz: f8a047a5a6bde63b497145af2cbf145f778d16d3ed0aa4ce73f637834e9f5b29181d13f960fccc0ae463bf4e887dc0a1223e5b73a73aed19a61cb8f3d83ccf26
|
@@ -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
|
-
|
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
|
-
|
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
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
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(
|
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,53 @@ 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 =
|
74
|
+
base64_regex = %r{^[A-Za-z0-9+/]+={0,2}$}
|
67
75
|
str.match?(base64_regex)
|
68
76
|
end
|
77
|
+
|
78
|
+
def split_address(address_string)
|
79
|
+
address_string = address_string&.dup
|
80
|
+
address_string ||= ""
|
81
|
+
address = { street: nil, city: nil, state: nil, zip: nil }
|
82
|
+
city_and_state_regex_found = false
|
83
|
+
|
84
|
+
city_and_state_regex = /\b([A-Za-z\s]+),\s*([A-Za-z]{2})\b/
|
85
|
+
zip_regex = /\d{5}(?:-\d{4})?$/
|
86
|
+
street_regex = /\A([^,]+)/
|
87
|
+
state_regex = /\b[A-Za-z]{2}\b/
|
88
|
+
city_regex = /\b[a-zA-Z0-9\s]{2,}\b/
|
89
|
+
|
90
|
+
if match_data = address_string.match(city_and_state_regex)
|
91
|
+
address[:city] = match_data[1].strip
|
92
|
+
address[:state] = match_data[2].strip
|
93
|
+
address_string.sub!(city_and_state_regex, "")
|
94
|
+
city_and_state_regex_found = true
|
95
|
+
end
|
96
|
+
|
97
|
+
if zip_match = address_string.match(zip_regex)
|
98
|
+
address[:zip] = zip_match[0].strip
|
99
|
+
address_string.sub!(zip_regex, "")
|
100
|
+
end
|
101
|
+
|
102
|
+
if street_match = address_string.match(street_regex)
|
103
|
+
address[:street] = street_match[0].strip
|
104
|
+
address[:street] = nil if address[:street].empty?
|
105
|
+
address_string.sub!(street_regex, "")
|
106
|
+
end
|
107
|
+
|
108
|
+
return address if city_and_state_regex_found
|
109
|
+
|
110
|
+
if state_match = address_string.match(state_regex)
|
111
|
+
address[:state] = state_match[0].strip
|
112
|
+
address_string.sub!(state_regex, "")
|
113
|
+
end
|
114
|
+
|
115
|
+
if city_match = address_string.match(city_regex)
|
116
|
+
address[:city] = city_match[0].strip
|
117
|
+
address_string.sub!(city_regex, "")
|
118
|
+
end
|
119
|
+
|
120
|
+
address
|
121
|
+
end
|
69
122
|
end
|
70
|
-
end
|
123
|
+
end
|
data/lib/wolf_core/version.rb
CHANGED
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.
|
4
|
+
version: 1.0.116
|
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-
|
11
|
+
date: 2025-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|