torasup 0.2.1 → 0.3.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: edd45e45ba249800acd5270089cc64b53592617106d1e51a27ccb852b405f1bd
4
- data.tar.gz: 553054695cf8be0734cad6d576bf0a5d1c702fb58a512607e2611aee9fb35005
3
+ metadata.gz: e150d23399a32f50bc95b591bbec1d02812532e55df25eb0be2fafa8dce9544a
4
+ data.tar.gz: ed59ddd0a7072579d111d47f37e806de43e98dbba5d73b10e53b133ef0303021
5
5
  SHA512:
6
- metadata.gz: 49f26e1e771ec9df3a1dd7f952295b9fb3efb38433597afb245ccbac9da0267915ce27a5bb7a8e96fd34a4b07b7103207599b7578030fe5b0f3f5b060ce336b1
7
- data.tar.gz: 3413d6e025acbcf2b0599bff021ccba403ab1fe0c61f54b2a1a2cab853fdeedcf5c673373bea00b940160e5ce7b12b5288a604ba59e7c0c9e30c4bd5b1e3f59f
6
+ metadata.gz: 0ee295f805616e923ed5bf8d02b73ca9807ea2d4294a22b7fb59da0d36d641b83ab4b395c80f82a47043d1fbb23dfd20625cb02c16e49073570e20b8dfd978eb
7
+ data.tar.gz: 51c634ebb1411948800e486be1e4b87655f93cfa87bba68faf062c4e41f983ee259c94803ec331955270f930f27ac35e3a92b99c6a244cd86a02ee91e07edc7a
@@ -0,0 +1,35 @@
1
+ name: Build
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v2
12
+
13
+ - name: Set up Ruby
14
+ uses: actions/setup-ruby@v1
15
+ with:
16
+ ruby-version: 2.7.x
17
+
18
+ - name: Install Dependencies
19
+ run: |
20
+ gem install bundler
21
+ bundle install --jobs 4 --retry 3
22
+
23
+ - name: Deploy
24
+ if: github.ref == 'refs/heads/master' && !contains(github.event.commits[0].message, '[skip deploy]')
25
+ env:
26
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
27
+ GEM_HOST_API_KEY: ${{ secrets.GEM_HOST_API_KEY }}
28
+
29
+ run: |
30
+ git config --global user.email "dwilkie@gmail.com"
31
+ git config --global user.name "David Wilkie"
32
+ mkdir -p ~/.gem
33
+ echo -e "---\r\n:rubygems_api_key: $GEM_HOST_API_KEY" > ~/.gem/credentials
34
+ chmod 0600 ~/.gem/credentials
35
+ bundle exec rake release
@@ -0,0 +1 @@
1
+ ruby 2.7.1
data/Gemfile CHANGED
@@ -1,9 +1,4 @@
1
- source 'https://rubygems.org'
2
-
3
- git_source(:github) do |repo_name|
4
- repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
5
- "https://github.com/#{repo_name}.git"
6
- end
1
+ source "https://rubygems.org"
7
2
 
8
3
  # Specify your gem's dependencies in torasup.gemspec
9
4
  gemspec
data/README.md CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  Retuns metadata about a phone number such as operator info, area code and more.
4
4
 
5
- [![Build Status](https://travis-ci.org/somleng/torasup.png)](https://travis-ci.org/somleng/torasup)
6
- [![Test Coverage](https://api.codeclimate.com/v1/badges/5598e3554335eb385bd8/test_coverage)](https://codeclimate.com/github/somleng/torasup/test_coverage)
7
- [![Maintainability](https://api.codeclimate.com/v1/badges/5598e3554335eb385bd8/maintainability)](https://codeclimate.com/github/somleng/torasup/maintainability)
5
+ ![Build](https://github.com/somleng/torasup/workflows/Build/badge.svg)
8
6
 
9
7
  ## Installation
10
8
 
@@ -11,7 +11,8 @@ require "torasup/location"
11
11
 
12
12
  module Torasup
13
13
  ALL_PREFIXES_KEYS = ["*", "all"].freeze
14
- DEFAULT_PREFIXES = ("10".."99").to_a.freeze
14
+ DEFAULT_OPERATOR_PREFIX_MIN = "10".freeze
15
+ DEFAULT_OPERATOR_PREFIX_MAX = "99".freeze
15
16
 
16
17
  module Test
17
18
  autoload :Helpers, "torasup/test/helpers"
@@ -26,7 +27,9 @@ module Torasup
26
27
  @international_dialing_codes = {}
27
28
  ISO3166::Country.all.each do |country|
28
29
  dialing_code = country.country_code
29
- @international_dialing_codes[dialing_code] = country.alpha2 if !@international_dialing_codes[dialing_code] || configuration.default_countries.include?(country.alpha2)
30
+ if !@international_dialing_codes[dialing_code] || configuration.default_countries.include?(country.alpha2)
31
+ @international_dialing_codes[dialing_code] = country.alpha2
32
+ end
30
33
  end
31
34
  end
32
35
 
@@ -79,7 +82,9 @@ module Torasup
79
82
  ).merge(prefix_data)
80
83
 
81
84
  @pstn_prefixes[operator_prefix] = prefix_properties
82
- @registered_pstn_prefixes[operator_prefix] = prefix_properties if operator_registered?(country_id, operator)
85
+ if operator_registered?(country_id, operator)
86
+ @registered_pstn_prefixes[operator_prefix] = prefix_properties
87
+ end
83
88
  end
84
89
  end
85
90
  end
@@ -140,8 +145,13 @@ module Torasup
140
145
  def operator_mobile_prefixes(country_id, operator)
141
146
  full_prefixes = {}
142
147
  operator_data = operator_data(country_id, operator)
143
- prefixes = DEFAULT_PREFIXES if operator_data["prefixes"].is_a?(String) && ALL_PREFIXES_KEYS.include?(operator_data["prefixes"])
144
- prefixes ||= operator_data["prefixes"] || []
148
+ if operator_data["prefixes"].is_a?(String) && ALL_PREFIXES_KEYS.include?(operator_data["prefixes"])
149
+ operator_prefix_min = country_data(country_id).fetch("operator_prefix_min", DEFAULT_OPERATOR_PREFIX_MIN)
150
+ operator_prefix_max = country_data(country_id).fetch("operator_prefix_max", DEFAULT_OPERATOR_PREFIX_MAX)
151
+ prefixes = (operator_prefix_min.to_s..operator_prefix_max).to_a
152
+ end
153
+ prefixes ||= operator_data["prefixes"]
154
+ prefixes ||= []
145
155
  mobile_prefixes = array_to_hash(prefixes)
146
156
  mobile_prefixes.each do |mobile_prefix, prefix_metadata|
147
157
  full_prefixes[operator_full_prefix(country_id, mobile_prefix)] = {
@@ -220,7 +220,69 @@ sl:
220
220
  - '30'
221
221
  - '77'
222
222
  - '88'
223
+ orange:
224
+ metadata:
225
+ name: "Orange"
226
+ prefixes:
227
+ - '75'
228
+ - '76'
229
+ - '78'
230
+ - '79'
223
231
  br:
224
232
  # https://en.wikipedia.org/wiki/Telecommunications_in_Brazil
225
233
  # https://en.wikipedia.org/wiki/List_of_mobile_network_operators_of_the_Americas#Brazil
226
234
  international_dialing_code: "55"
235
+
236
+ mx:
237
+ international_dialing_code: "52"
238
+
239
+ gt:
240
+ international_dialing_code: "502"
241
+
242
+ in:
243
+ # https://en.wikipedia.org/wiki/Mobile_telephone_numbering_in_India
244
+ international_dialing_code: "91"
245
+ operator_prefix_min: "6000"
246
+ operator_prefix_max: "9999"
247
+
248
+ gh:
249
+ international_dialing_code: "233"
250
+ # https://en.m.wikipedia.org/wiki/Telephone_numbers_in_Ghana
251
+ operators:
252
+ globacom:
253
+ # https://en.wikipedia.org/wiki/Glo_(company)
254
+ metadata:
255
+ name: "Globacom"
256
+ prefixes:
257
+ - '23'
258
+ mtn:
259
+ # https://en.wikipedia.org/wiki/MTN_Group
260
+ metadata:
261
+ name: "MTN"
262
+ prefixes:
263
+ - '24'
264
+ - '54'
265
+ - '55'
266
+ - '59'
267
+ airtel_tigo:
268
+ # https://en.wikipedia.org/wiki/Airtel_Africa#Tigo_Ghana_merger
269
+ metadata:
270
+ name: "AirtelTigo"
271
+ prefixes:
272
+ - '27'
273
+ - '57'
274
+ - '26'
275
+ - '56'
276
+ expresso:
277
+ # https://en.wikipedia.org/wiki/Expresso_Telecom
278
+ metadata:
279
+ name: "Expresso"
280
+ prefixes:
281
+ - '28'
282
+ vodafone:
283
+ # https://en.wikipedia.org/wiki/Vodafone_Ghana
284
+ metadata:
285
+ name: "Vodafone"
286
+ prefixes:
287
+ - '20'
288
+ - '50'
@@ -17,6 +17,7 @@ module Torasup
17
17
 
18
18
  def parse_phone_number(number)
19
19
  raise "Not a vaild number" unless Phony.plausible?(number)
20
+
20
21
  @number = Phony.normalize(number)
21
22
  number_parts = split_number
22
23
  @country_code = number_parts.shift
@@ -1,3 +1,3 @@
1
1
  module Torasup
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.2".freeze
3
3
  end
@@ -17,6 +17,14 @@ kh:
17
17
  - '87'
18
18
  area_code_prefixes:
19
19
  - '45'
20
+
21
+ in:
22
+ operators:
23
+ imimobile:
24
+ metadata:
25
+ name: "IMImobile"
26
+ prefixes: "*"
27
+
20
28
  br:
21
29
  operators:
22
30
  mundivox:
@@ -187,3 +187,45 @@ sl:
187
187
  - '30'
188
188
  - '77'
189
189
  - '88'
190
+
191
+ gh:
192
+ prefix: "233"
193
+ local_number: "2437103"
194
+ operators:
195
+ # https://en.m.wikipedia.org/wiki/Telephone_numbers_in_Ghana
196
+ globacom:
197
+ # https://en.wikipedia.org/wiki/Glo_(company)
198
+ assertions:
199
+ name: "Globacom"
200
+ prefixes:
201
+ - '23'
202
+ mtn:
203
+ # https://en.wikipedia.org/wiki/MTN_Group
204
+ assertions:
205
+ name: "MTN"
206
+ prefixes:
207
+ - '24'
208
+ - '54'
209
+ - '55'
210
+ airtel_tigo:
211
+ # https://en.wikipedia.org/wiki/Airtel_Africa#Tigo_Ghana_merger
212
+ assertions:
213
+ name: "AirtelTigo"
214
+ prefixes:
215
+ - '27'
216
+ - '57'
217
+ - '26'
218
+ - '56'
219
+ expresso:
220
+ # https://en.wikipedia.org/wiki/Expresso_Telecom
221
+ assertions:
222
+ name: "Expresso"
223
+ prefixes:
224
+ - '28'
225
+ vodafone:
226
+ # https://en.wikipedia.org/wiki/Vodafone_Ghana
227
+ assertions:
228
+ name: "Vodafone"
229
+ prefixes:
230
+ - '20'
231
+ - '50'
@@ -91,11 +91,17 @@ module Torasup
91
91
 
92
92
  it_should_behave_like "an operator"
93
93
 
94
- it "should handle wildcard prefixes" do
94
+ it "handles default prefixes" do
95
95
  torasup_number = Torasup::PhoneNumber.new("5582999489999")
96
96
  operator = torasup_number.operator
97
97
  expect(operator.id).to eq("mundivox")
98
98
  end
99
+
100
+ it "handles long prefixes" do
101
+ torasup_number = Torasup::PhoneNumber.new("919560234567")
102
+ operator = torasup_number.operator
103
+ expect(operator.id).to eq("imimobile")
104
+ end
99
105
  end
100
106
 
101
107
  context "with multiple configuration files" do
@@ -1,29 +1,29 @@
1
- # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
1
+
2
+ lib = File.expand_path("lib", __dir__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'torasup/version'
4
+ require "torasup/version"
5
5
 
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "torasup"
8
8
  gem.version = Torasup::VERSION
9
9
  gem.authors = ["David Wilkie"]
10
10
  gem.email = ["dwilkie@gmail.com"]
11
- gem.description = %q{"Retuns metadata about a phone number such as operator, area code and more"}
12
- gem.summary = %q{"Retuns metadata about a phone number such as operator, area code and more"}
11
+ gem.description = '"Retuns metadata about a phone number such as operator, area code and more"'
12
+ gem.summary = '"Retuns metadata about a phone number such as operator, area code and more"'
13
13
  gem.homepage = "https://github.com/dwilkie/torasup/"
14
- gem.license = 'MIT'
14
+ gem.license = "MIT"
15
15
 
16
- gem.files = `git ls-files`.split($/)
17
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
20
 
21
- gem.add_runtime_dependency "countries", '>= 1.1.0'
22
- gem.add_runtime_dependency "phony", '>= 2.15.47'
21
+ gem.add_runtime_dependency "countries"
23
22
  gem.add_runtime_dependency "deep_merge"
23
+ gem.add_runtime_dependency "phony"
24
24
 
25
- gem.add_development_dependency "rspec"
25
+ gem.add_development_dependency "codeclimate-test-reporter"
26
26
  gem.add_development_dependency "rake"
27
+ gem.add_development_dependency "rspec"
27
28
  gem.add_development_dependency "simplecov"
28
- gem.add_development_dependency "codeclimate-test-reporter", "~> 1.0.0"
29
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torasup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Wilkie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-11 00:00:00.000000000 Z
11
+ date: 2021-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: countries
@@ -16,30 +16,30 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: phony
28
+ name: deep_merge
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.15.47
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 2.15.47
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: deep_merge
42
+ name: phony
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: codeclimate-test-reporter
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: simplecov
84
+ name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,19 +95,19 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: codeclimate-test-reporter
98
+ name: simplecov
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.0
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.0.0
110
+ version: '0'
111
111
  description: '"Retuns metadata about a phone number such as operator, area code and
112
112
  more"'
113
113
  email:
@@ -116,11 +116,11 @@ executables: []
116
116
  extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
+ - ".github/workflows/build.yml"
119
120
  - ".gitignore"
120
121
  - ".rspec"
121
122
  - ".rubocop.yml"
122
- - ".ruby-version"
123
- - ".travis.yml"
123
+ - ".tool-versions"
124
124
  - Gemfile
125
125
  - LICENSE.txt
126
126
  - README.md
@@ -164,8 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  requirements: []
167
- rubyforge_project:
168
- rubygems_version: 2.7.3
167
+ rubygems_version: 3.1.4
169
168
  signing_key:
170
169
  specification_version: 4
171
170
  summary: '"Retuns metadata about a phone number such as operator, area code and more"'
@@ -1 +0,0 @@
1
- 2.5.0
@@ -1,11 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- env:
4
- global:
5
- - START_SIMPLECOV=1
6
- addons:
7
- code_climate:
8
- repo_token:
9
- secure: "Xk7T8ZyorwO85WfXC7OB2HfIM9Z/GO85u97P1qwXukL1ZjjDffr3mzhh706AVA9JPpTQGDbLNU5aStxX6NVLjBXyflvEpSGmYLl0aHDVikcNvZA/jBGlIfJH/6/V5bJA11X3V2/9FeO5l2fPkusWxbcpAIowe7xclDXfujdoNGk="
10
- after_success:
11
- - bundle exec codeclimate-test-reporter