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 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,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SousmilePhoneParser
4
+ VERSION = "0.1.0"
5
+ end
@@ -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: []