fake_phone_number_generator 1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []