torasup 0.2.1 → 0.3.2

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