mobile-subscriber 0.0.1.beta1 → 1.0.0.alpha1
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 +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
|
+
[](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.
|