sousmile_phone_parser 0.1.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 +7 -0
- data/lib/sousmile_phone_parser/version.rb +5 -0
- data/lib/sousmile_phone_parser.rb +70 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1049fca889c964ef9deb8888b2300819c18f2d8f5b3b8346aec29d9d46096ada
|
4
|
+
data.tar.gz: 893910e41855fa97a2961b88f50316b4269e01b6b85431ae236f1327ae4e90df
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3dc6bf9e45b5b46030e436ffeda858b41f5925d2cc15b2d0b6e6e75fe5d637cf7abada378bf39536a46202b0499f0982432f802de9bf7d037e1208dcd275d775
|
7
|
+
data.tar.gz: b95a2ad6128816e72814c12f69267294ceecc8ddd8d739dfb33a91b3256e15c6a14689725aad9bec9c771e2854ca908a422f51f5e9c581de2100a52be4580bc1
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "sousmile_phone_parser/version"
|
4
|
+
require "phonelib"
|
5
|
+
|
6
|
+
module SousmilePhoneParser
|
7
|
+
Phonelib.default_country = "BR"
|
8
|
+
Phonelib.ignore_plus = true
|
9
|
+
Phonelib.strict_double_prefix_check = true
|
10
|
+
|
11
|
+
module PhoneExtensions
|
12
|
+
|
13
|
+
def possible_eight_digit_phone?
|
14
|
+
return false unless (invalid? || types.include?(:fixed_line)) && possible?
|
15
|
+
|
16
|
+
# local = instance_variable_get("@national_number")
|
17
|
+
local = @national_number
|
18
|
+
# puts "=----------> #{@national_number}"
|
19
|
+
# puts "=----------> #{local[0..1]} #{local[0..7]}"
|
20
|
+
# puts "=----------> #{@area_code}"
|
21
|
+
|
22
|
+
if local.size == 10 && @area_code.nil?
|
23
|
+
local = "#{local[0..1]} #{local[0..7]}"
|
24
|
+
end
|
25
|
+
|
26
|
+
local_number_splitted = local&.split(" ")
|
27
|
+
number_size = local_number_splitted[1]&.size&.to_i
|
28
|
+
area_code_from_split = local_number_splitted[0] || "55"
|
29
|
+
|
30
|
+
area_code_from_split != "55" && number_size == 8
|
31
|
+
end
|
32
|
+
|
33
|
+
def international(formated = false, prefix = "+", auto_add_nine_prefix = true)
|
34
|
+
if possible_eight_digit_phone?
|
35
|
+
international_splitted = super(true, prefix)&.split(" ")
|
36
|
+
local_number = international_splitted&.last
|
37
|
+
|
38
|
+
if auto_add_nine_prefix
|
39
|
+
international_splitted[2] = "9#{international_splitted[2].gsub(/\D/, '')}"
|
40
|
+
else
|
41
|
+
international_splitted[2] = international_splitted[2].gsub(/\D/, '')
|
42
|
+
end
|
43
|
+
|
44
|
+
join_string = formated ? " " : ""
|
45
|
+
return international_splitted.join(join_string)
|
46
|
+
end
|
47
|
+
|
48
|
+
super(formated, prefix)
|
49
|
+
end
|
50
|
+
|
51
|
+
def whatsapp formated: false, auto_add_nine_prefix: false
|
52
|
+
self.international(formated, 'whatsapp:+', auto_add_nine_prefix)
|
53
|
+
end
|
54
|
+
|
55
|
+
def national_number
|
56
|
+
national
|
57
|
+
end
|
58
|
+
|
59
|
+
def national(formated = false)
|
60
|
+
if possible_eight_digit_phone?
|
61
|
+
return Phonelib.parse(international(formated)).national
|
62
|
+
end
|
63
|
+
|
64
|
+
super(formated)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# Estende a classe Phonelib::Phone com os métodos personalizados
|
70
|
+
Phonelib::Phone.prepend(SousmilePhoneParser::PhoneExtensions)
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sousmile_phone_parser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- SouSmile
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-03-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: phonelib
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Adiciona validações e formatação customizada para números de telefone
|
28
|
+
e de whatsapp.
|
29
|
+
email:
|
30
|
+
- engenharia@sousmile.com
|
31
|
+
executables: []
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- lib/sousmile_phone_parser.rb
|
36
|
+
- lib/sousmile_phone_parser/version.rb
|
37
|
+
homepage: https://github.com/sousmile/sousmile_phone_parser
|
38
|
+
licenses:
|
39
|
+
- MIT
|
40
|
+
metadata: {}
|
41
|
+
post_install_message:
|
42
|
+
rdoc_options: []
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 3.2.3
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
requirements: []
|
56
|
+
rubygems_version: 3.4.19
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: Extensões para a gem phonelib para suportar números de tefones e de whatsapp
|
60
|
+
test_files: []
|