mobile-subscriber 1.0.0.alpha2 → 1.0.0.alpha3

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
  SHA1:
3
- metadata.gz: 80a1f00c8af97774375ce292825d1ccd16125ea2
4
- data.tar.gz: 53b1c2b1cf5fa8d65665abd9c59be800d71d702e
3
+ metadata.gz: dff021ce9f98d8b6f5b708e5b5b923371a73ae3e
4
+ data.tar.gz: 6943c7b168217442a6f83cef0b439e71fee48874
5
5
  SHA512:
6
- metadata.gz: 72ef14f604142edb0243bb764e09ab3da9bc36a938175dd10dae93c9be72977bd7f68a5db57db4c076efd0150fedc28ab5f5ef1a83ef8bcc93315bd3a0b650a4
7
- data.tar.gz: 00eee445ece94fa6445e270ba1902645669cc0e8d096a57199e9dc501be9eac3bb60f119093f43a9e4c5233d2fa9463b6d38300ed08d224269dcea7feb0ddcdd
6
+ metadata.gz: da95e3e0d4d5fd5f9b7d251a08e368b667782e10d59622fb0c42ae42808a77e1900a8c3f30d86f226a4889d2c052f9d74394f6d702aba5633c55f6ad5482cb27
7
+ data.tar.gz: 8c54ae67aae2b5056834831cadef35704e36f6e017cd7f318c25c4a9f4b5485cbbaeab90fb4139e5dcb050445f84e1026013314c981fd614d781f0493b99c3a8
@@ -6,6 +6,7 @@ module MobileSubscriber::Detection
6
6
  # - Telcel México
7
7
  # - Claro Argentina
8
8
  # - Claro Costa Rica
9
+ # - Claro Puerto Rico
9
10
  # - Claro Guatemala
10
11
  # - Claro Honduras
11
12
  # - Claro Nicaragua
@@ -17,26 +18,29 @@ module MobileSubscriber::Detection
17
18
 
18
19
  country_code = (
19
20
  MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,2]] ||
20
- MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,3]]
21
+ MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,3]] || # Dominican 3-digit needed
22
+ MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,1]] # Puerto Rico 1-digit country code of "1"
21
23
  )
22
24
 
23
25
  # Determine the Network Operator tuple (MCC + MNC):
24
26
  # TODO: Validate IP ranges, additional headers, etc.
25
27
  network_id_tuple = case country_code
28
+ when 'PR' # Claro Puerto Rico:
29
+ { mcc: "330", mnc: "110" }
26
30
  when 'MX' # Telcel México:
27
- { mcc: "334", mnc: "020" }
31
+ { mcc: "334", mnc: "020" }
28
32
  when 'GT' # Claro Guatemala:
29
- { mcc: "704", mnc: "01" }
33
+ { mcc: "704", mnc: "01" }
30
34
  when 'SV' # Claro El Salvador:
31
35
  { mcc: "706", mnc: "01" }
32
36
  when 'HN' # Claro Honduras:
33
- { mcc: "708", mnc: "001" }
37
+ { mcc: "708", mnc: "001" }
34
38
  when 'NI' # Claro Nicaragua:
35
39
  { mcc: "710", mnc: "21" }
36
40
  when 'CR' # Claro Costa Rica
37
41
  { mcc: "712", mnc: "03" }
38
42
  when 'AR' # Claro Argentina:
39
- { mcc: "722", mnc: "330" }
43
+ { mcc: "722", mnc: "330" }
40
44
  end
41
45
 
42
46
  # Return only if we identified the network:
@@ -41,6 +41,7 @@ module MobileSubscriber::Detection
41
41
  'X-Wap-Msisdn',
42
42
  'X-Wap-Sesiones3g-Mdn', # Not in referenced literature
43
43
  'X-Wsb-Cli',
44
+ 'X-Ztgo-Beareraddress', # Not in referenced literature
44
45
 
45
46
  # Headers that contain bearer information:
46
47
  # http://www.mulliner.org/collin/academic/publications/mobile_web_privacy_icin10_mulliner.pdf
@@ -2,6 +2,9 @@ module MobileSubscriber
2
2
  # See: http://countrycode.org/
3
3
  # Diccionario de Dialing Country Codes => ISO country codes:
4
4
  DIALING_COUNTRY_CODES = {
5
+ # WTF???
6
+ '1' => 'PR', # Puerto Rico "1" country code...
7
+
5
8
  # Caribbean Islands' country codes are a mess!
6
9
  '1809' => 'DO', # Dominican Republic
7
10
  '1829' => 'DO', # Dominican Republic Overlay 1
@@ -1,3 +1,3 @@
1
1
  module MobileSubscriber
2
- VERSION = "1.0.0.alpha2"
2
+ VERSION = "1.0.0.alpha3"
3
3
  end
@@ -45,6 +45,16 @@ describe MobileSubscriber::Detection::FromXNokiaMsisdnHttpRequestHeader do
45
45
  end
46
46
  end
47
47
 
48
+ context "when given a request made from Claro Puerto Rico" do
49
+ let(:test_request) { build :mobile_request_from_claro_puerto_rico }
50
+
51
+ include_examples "of detection of msisdn from a valid puerto rican mobile network http request"
52
+
53
+ it "has a :mobile_network_code value of '110'" do
54
+ expect(subject[:mobile_network_code]).to eq '110'
55
+ end
56
+ end
57
+
48
58
  context "when given a request made from Claro Guatemala" do
49
59
  let(:test_request) { build :mobile_request_from_claro_guatemala }
50
60
 
@@ -100,6 +100,16 @@ FactoryGirl.define do
100
100
  end
101
101
  end
102
102
 
103
+ # TODO: Replace with a real example request:
104
+ factory :mobile_request_from_claro_puerto_rico do
105
+ initialize_with do
106
+ new build(:common_mobile_request_env).merge(
107
+ "REMOTE_ADDR" => "64.237.130.12",
108
+ "HTTP_X_NOKIA_MSISDN" => "17872889401" # 1-787-XXXXXXXX
109
+ )
110
+ end
111
+ end
112
+
103
113
  # http://myip.ms/view/ip_owners/80612/Conecel.html
104
114
  factory :mobile_request_from_claro_ecuador do
105
115
  initialize_with do
@@ -114,6 +114,17 @@ shared_examples "of detection of msisdn from a valid costa rican mobile network
114
114
  end
115
115
  end
116
116
 
117
+ shared_examples "of detection of msisdn from a valid puerto rican mobile network http request" do
118
+ include_examples "of detection of msisdn from a valid mobile network http request"
119
+ it "has an :id value that starts with '1'" do
120
+ expect(subject[:id]).to match /\A1/
121
+ end
122
+
123
+ it "has a :mobile_country_code value of '330'" do
124
+ expect(subject[:mobile_country_code]).to eq '330'
125
+ end
126
+ end
127
+
117
128
  shared_examples "of detection of msisdn from a valid colombian mobile network http request" do
118
129
  include_examples "of detection of msisdn from a valid mobile network http request"
119
130
  it "has an :id value that starts with '57'" 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: 1.0.0.alpha2
4
+ version: 1.0.0.alpha3
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-03-12 00:00:00.000000000 Z
11
+ date: 2015-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport