fake_phone_number_generator 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: ec2e9c059fdafb1799ce998c5fff4096dea9abc3197a1dbbb90100ff7c66f440
4
+ data.tar.gz: 7e94721f701e615321b7b131d94c92d2b65a0821c781d5a6c5d8085d04d1fc15
5
+ SHA512:
6
+ metadata.gz: 9321b6220a6281c46aa2aef59a5995c00bf4253e2b65172ace0c7cc25a46d2629ea133253d86c9a2b395a6f9c0b0aeadeccc65757d81d17072582c3016871b92
7
+ data.tar.gz: a911d364c8b40c481c85e1bea4b981f2e385b09a11690e95a05873b87bb4ba4c3721b73f5287d1a699079fbfe2b3d536e92024f3aecc5c69f68d4d93c3de6e4a
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'phonelib'
4
+ require 'countries'
5
+
6
+ class FakePhoneNumberGenerator
7
+ @@generated_numbers = {}
8
+
9
+ class << self
10
+ def generate(country:)
11
+ @@generated_numbers[country] = [] unless @@generated_numbers.include?(country)
12
+ new_number = phone_number(country)
13
+ new_number = phone_number(country) while @@generated_numbers[country].include?(new_number)
14
+ @@generated_numbers[country] << new_number
15
+ new_number
16
+ end
17
+
18
+ def generated_numbers
19
+ @@generated_numbers
20
+ end
21
+
22
+ private
23
+
24
+ def country_code_for(country)
25
+ ISO3166::Country.new(country).country_code
26
+ end
27
+
28
+ def phone_length(country)
29
+ ISO3166::Country.new(country).national_number_lengths.first
30
+ end
31
+
32
+ def phone_number(country)
33
+ country_code_for(country) + phone_length(country).downto(0).map { (1..9).to_a.sample }.join("")
34
+ end
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fake_phone_number_generator
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.0'
5
+ platform: ruby
6
+ authors:
7
+ - Rockwell
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-01-30 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.6.45
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.6.45
27
+ - !ruby/object:Gem::Dependency
28
+ name: countries
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 4.2.1
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '4.2'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 4.2.1
47
+ description: A simple class that generates a random valid unique phone number
48
+ email: dev.ahmad.khattab@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/fake_phone_number_generator.rb
54
+ homepage: https://rubygems.org/gems/fake_phone_number_generator
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubygems_version: 3.2.15
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: Generate random, valid, unique phone numbers for a specific country
77
+ test_files: []