mobile-subscriber 0.0.1.beta1 → 1.0.0.alpha1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/Gemfile +8 -4
- data/README.md +2 -0
- data/lib/mobile_subscriber/detection/from_msisdn_http_request_header.rb +2 -6
- data/lib/mobile_subscriber/detection/from_x_nokia_msisdn_http_request_header.rb +6 -1
- data/lib/mobile_subscriber/dictionaries/dialing_and_country_codes.rb +6 -1
- data/lib/mobile_subscriber/version.rb +1 -1
- data/spec/detection/from_x_nokia_msisdn_http_request_header_spec.rb +20 -0
- data/spec/detection/from_x_wap_sesiones3g_mdn_http_request_header_spec.rb +1 -1
- data/spec/factories/requests.rb +23 -0
- data/spec/shared_examples/of_msisdn_detection_from_http_request.rb +20 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae67ac6282a540faba3e4b5212070bf6032ff29b
|
4
|
+
data.tar.gz: 25145806d895c4a019f788672f7034de4647695c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ec68823ec387842a9b55a03d635c4207052a60f04545184fc19ee2ecf01287b59de2d5b724dd282bbc0f36a806634ec0717c6f75a45d347b3dfc4d6db90da54
|
7
|
+
data.tar.gz: 60122de6fe24bd0e9375574ff1bbe28b26d48e43eab85a3291798f2473ebeeaec59a853929a12fe73c8bde4e2ddb3b320c85e683acbb528fc52d38d3a4048163
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -4,7 +4,11 @@ source 'https://rubygems.org'
|
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
gem 'activesupport', "~> 4.0"
|
7
|
-
|
8
|
-
|
9
|
-
gem
|
10
|
-
gem '
|
7
|
+
|
8
|
+
group :development, :test do
|
9
|
+
gem "rake"
|
10
|
+
gem 'guard-rspec', require: false
|
11
|
+
gem 'byebug', require: true
|
12
|
+
gem 'thor'
|
13
|
+
gem 'nokogiri'
|
14
|
+
end
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# MobileSubscriber Gem
|
2
2
|
|
3
|
+
[![Build Status](https://travis-ci.org/vovimayhem/mobile-subscriber-gem.svg?branch=master)](https://travis-ci.org/vovimayhem/mobile-subscriber-gem)
|
4
|
+
|
3
5
|
It's a fact that the Mobile network providers (carriers, operators & such) share
|
4
6
|
subscriber identity data to approved 3rd parties when users navigate via Web to
|
5
7
|
the 3rd parties' websites.
|
@@ -11,7 +11,6 @@ module MobileSubscriber::Detection
|
|
11
11
|
# - Claro República Dominicana
|
12
12
|
# - Claro Ecuador
|
13
13
|
# - Claro El Salvador
|
14
|
-
# - Claro Guatemala
|
15
14
|
# - Claro Nicaragua
|
16
15
|
# - Claro Panamá
|
17
16
|
# - Claro Paraguay
|
@@ -22,7 +21,8 @@ module MobileSubscriber::Detection
|
|
22
21
|
|
23
22
|
country_code = (
|
24
23
|
MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,2]] ||
|
25
|
-
MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,3]]
|
24
|
+
MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,3]] ||
|
25
|
+
MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,4]] # Dominican Republic
|
26
26
|
)
|
27
27
|
|
28
28
|
# Determine the Network Operator (MCC + MNC tuple):
|
@@ -43,10 +43,6 @@ module MobileSubscriber::Detection
|
|
43
43
|
{ mcc: "740", mnc: "01" }
|
44
44
|
when 'SV' # Claro El Salvador:
|
45
45
|
{ mcc: "706", mnc: "01" }
|
46
|
-
when 'GT' # Claro Guatemala:
|
47
|
-
{ mcc: "704", mnc: "01" }
|
48
|
-
when 'HN' # Claro Honduras:
|
49
|
-
{ mcc: "708", mnc: "001" }
|
50
46
|
when 'NI' # Claro Nicaragua:
|
51
47
|
{ mcc: "710", mnc: "21" }
|
52
48
|
when 'PA' # Claro Panamá:
|
@@ -4,6 +4,8 @@ module MobileSubscriber::Detection
|
|
4
4
|
# Módulo que provee métodos de deteccion y validacion para MSISDN's de:
|
5
5
|
# - Telcel México
|
6
6
|
# - Claro Argentina
|
7
|
+
# - Claro Guatemala
|
8
|
+
# - Claro Honduras
|
7
9
|
module FromXNokiaMsisdnHttpRequestHeader
|
8
10
|
|
9
11
|
def extract_from_x_nokia_msisdn_http_request_header(http_request_info)
|
@@ -19,7 +21,10 @@ module MobileSubscriber::Detection
|
|
19
21
|
network_id_tuple = case country_code
|
20
22
|
when 'MX' # Telcel México:
|
21
23
|
{ mcc: "334", mnc: "020" }
|
22
|
-
|
24
|
+
when 'GT' # Claro Guatemala:
|
25
|
+
{ mcc: "704", mnc: "01" }
|
26
|
+
when 'HN' # Claro Honduras:
|
27
|
+
{ mcc: "708", mnc: "001" }
|
23
28
|
when 'AR' # Claro Argentina:
|
24
29
|
{ mcc: "722", mnc: "330" }
|
25
30
|
end
|
@@ -1,6 +1,11 @@
|
|
1
1
|
module MobileSubscriber
|
2
|
-
# Diccionario de
|
2
|
+
# Diccionario de Dialing Country Codes => ISO country codes:
|
3
3
|
DIALING_COUNTRY_CODES = {
|
4
|
+
# Caribbean Islands' country codes are a mess!
|
5
|
+
'1809' => 'DO', # Dominican Republic
|
6
|
+
'1829' => 'DO', # Dominican Republic Overlay 1
|
7
|
+
'1849' => 'DO', # Dominican Republic Overlay 2
|
8
|
+
|
4
9
|
'501' => 'BZ', # Belize
|
5
10
|
'502' => 'GT', # Guatemala
|
6
11
|
'503' => 'SV', # El Salvador
|
@@ -34,6 +34,26 @@ describe MobileSubscriber::Detection::FromXNokiaMsisdnHttpRequestHeader do
|
|
34
34
|
expect(subject[:mobile_network_code]).to match /310|320|330/
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
38
|
+
context "when given a request made from Claro Guatemala" do
|
39
|
+
let(:test_request) { build :mobile_request_from_claro_guatemala }
|
40
|
+
|
41
|
+
include_examples "of detection of msisdn from a valid guatemalan mobile network http request"
|
42
|
+
|
43
|
+
it "has a :mobile_network_code value of '01'" do
|
44
|
+
expect(subject[:mobile_network_code]).to eq '01'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "when given a request made from Claro Honduras" do
|
49
|
+
let(:test_request) { build :mobile_request_from_claro_honduras }
|
50
|
+
|
51
|
+
include_examples "of detection of msisdn from a valid honduran mobile network http request"
|
52
|
+
|
53
|
+
it "has a :mobile_network_code value of '001'" do
|
54
|
+
expect(subject[:mobile_network_code]).to eq '001'
|
55
|
+
end
|
56
|
+
end
|
37
57
|
end
|
38
58
|
|
39
59
|
end
|
data/spec/factories/requests.rb
CHANGED
@@ -90,6 +90,29 @@ FactoryGirl.define do
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
+
# Request from a client through Claro Guatemala network:
|
94
|
+
# (Built from an actual ATP test)
|
95
|
+
factory :mobile_request_from_claro_guatemala do
|
96
|
+
initialize_with do
|
97
|
+
new build(:common_mobile_request_env).merge(
|
98
|
+
"REMOTE_ADDR" => "216.230.152.158",
|
99
|
+
"HTTP_X_NOKIA_MSISDN" => "50241865146",
|
100
|
+
"HTTP_X_NOKIA_IMSI" => "704012013128442",
|
101
|
+
"HTTP_X_FORWARDED_FOR" => "190.212.233.218, 204.0.3.199"
|
102
|
+
)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
# TODO: Replace with a real example:
|
107
|
+
factory :mobile_request_from_claro_honduras do
|
108
|
+
initialize_with do
|
109
|
+
new build(:common_mobile_request_env).merge(
|
110
|
+
"REMOTE_ADDR" => "190.107.157.31",
|
111
|
+
"HTTP_X_NOKIA_MSISDN" => "50430000000"
|
112
|
+
)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
93
116
|
# http://myip.ms/view/ip_owners/90291/America_Movil_Peru_S_a_c.html
|
94
117
|
factory :mobile_request_from_claro_peru do
|
95
118
|
initialize_with do
|
@@ -50,6 +50,26 @@ shared_examples "of detection of msisdn from a valid mexican mobile network http
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
+
shared_examples "of detection of msisdn from a valid guatemalan mobile network http request" do
|
54
|
+
include_examples "of detection of msisdn from a valid mobile network http request"
|
55
|
+
it "has an :id value that starts with '502'" do
|
56
|
+
expect(subject[:id]).to match /\A502/
|
57
|
+
end
|
58
|
+
it "has a :mobile_country_code value of '704'" do
|
59
|
+
expect(subject[:mobile_country_code]).to eq '704'
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
shared_examples "of detection of msisdn from a valid honduran mobile network http request" do
|
64
|
+
include_examples "of detection of msisdn from a valid mobile network http request"
|
65
|
+
it "has an :id value that starts with '504'" do
|
66
|
+
expect(subject[:id]).to match /\A504/
|
67
|
+
end
|
68
|
+
it "has a :mobile_country_code value of '708'" do
|
69
|
+
expect(subject[:mobile_country_code]).to eq '708'
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
53
73
|
shared_examples "of detection of msisdn from a valid brazilian mobile network http request" do
|
54
74
|
include_examples "of detection of msisdn from a valid mobile network http request"
|
55
75
|
it "has an :id value that starts with '55'" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mobile-subscriber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 1.0.0.alpha1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Quintanilla
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -158,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
158
|
version: 1.3.1
|
159
159
|
requirements: []
|
160
160
|
rubyforge_project:
|
161
|
-
rubygems_version: 2.
|
161
|
+
rubygems_version: 2.4.5
|
162
162
|
signing_key:
|
163
163
|
specification_version: 4
|
164
164
|
summary: Mobile MSISDN detection & validation.
|