mobile-subscriber 1.0.0.alpha1 → 1.0.0.alpha2

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: ae67ac6282a540faba3e4b5212070bf6032ff29b
4
- data.tar.gz: 25145806d895c4a019f788672f7034de4647695c
3
+ metadata.gz: 80a1f00c8af97774375ce292825d1ccd16125ea2
4
+ data.tar.gz: 53b1c2b1cf5fa8d65665abd9c59be800d71d702e
5
5
  SHA512:
6
- metadata.gz: 7ec68823ec387842a9b55a03d635c4207052a60f04545184fc19ee2ecf01287b59de2d5b724dd282bbc0f36a806634ec0717c6f75a45d347b3dfc4d6db90da54
7
- data.tar.gz: 60122de6fe24bd0e9375574ff1bbe28b26d48e43eab85a3291798f2473ebeeaec59a853929a12fe73c8bde4e2ddb3b320c85e683acbb528fc52d38d3a4048163
6
+ metadata.gz: 72ef14f604142edb0243bb764e09ab3da9bc36a938175dd10dae93c9be72977bd7f68a5db57db4c076efd0150fedc28ab5f5ef1a83ef8bcc93315bd3a0b650a4
7
+ data.tar.gz: 00eee445ece94fa6445e270ba1902645669cc0e8d096a57199e9dc501be9eac3bb60f119093f43a9e4c5233d2fa9463b6d38300ed08d224269dcea7feb0ddcdd
@@ -13,7 +13,9 @@ module MobileSubscriber
13
13
  autoload :FromXUpCallingLineIdHttpRequestHeader
14
14
  autoload :FromXUpChMsisdnHttpRequestHeader
15
15
  autoload :FromXUpSubnoHttpRequestHeader
16
+ autoload :FromXWapMsisdnHttpRequestHeader
16
17
  autoload :FromXWapSesiones3gMdnHttpRequestHeader
18
+ autoload :FromXZtgoBeareraddressHttpRequestHeader
17
19
  autoload :HttpRequestInfo
18
20
  end
19
21
  end
@@ -5,14 +5,8 @@ module MobileSubscriber::Detection
5
5
  # Módulo que provee métodos de detección y validacion para MSISDN por el
6
6
  # header de HTTP 'Msisdn':
7
7
  # - Claro Brasil
8
- # - Claro Chile
9
- # - Claro Colombia
10
- # - Claro Costa Rica
11
8
  # - Claro República Dominicana
12
9
  # - Claro Ecuador
13
- # - Claro El Salvador
14
- # - Claro Nicaragua
15
- # - Claro Panamá
16
10
  # - Claro Paraguay
17
11
  module FromMsisdnHttpRequestHeader
18
12
 
@@ -30,25 +24,13 @@ module MobileSubscriber::Detection
30
24
  network_id_tuple = case country_code
31
25
  when 'BR' # Claro Brasil
32
26
  # TODO: Determine (if possible) the MNC (05, 38)
33
- { mcc: "724", mnc: "05" }
34
- when 'CL' # Claro Chile
35
- { mcc: "730", mnc: "03" }
36
- when 'CO' # Claro Colombia
37
- { mcc: "732", mnc: "101" }
38
- when 'CR' # Claro Costa Rica
39
- { mcc: "712", mnc: "03" }
27
+ { mcc: "724", mnc: "05" }
40
28
  when 'DO' # Claro Dominicana:
41
- { mcc: "370", mnc: "02" }
29
+ { mcc: "370", mnc: "02" }
42
30
  when 'EC' # Claro Ecuador:
43
- { mcc: "740", mnc: "01" }
44
- when 'SV' # Claro El Salvador:
45
- { mcc: "706", mnc: "01" }
46
- when 'NI' # Claro Nicaragua:
47
- { mcc: "710", mnc: "21" }
48
- when 'PA' # Claro Panamá:
49
- { mcc: "714", mnc: "03" }
31
+ { mcc: "740", mnc: "01" }
50
32
  when 'PY' # Claro Paraguay:
51
- { mcc: "744", mnc: "02" }
33
+ { mcc: "744", mnc: "02" }
52
34
  end
53
35
 
54
36
  # Return only if we identified the network:
@@ -1,11 +1,15 @@
1
1
  require 'mobile_subscriber/dictionaries/dialing_and_country_codes'
2
+
2
3
  module MobileSubscriber::Detection
3
4
 
4
5
  # Módulo que provee métodos de deteccion y validacion para MSISDN's de:
5
6
  # - Telcel México
6
7
  # - Claro Argentina
8
+ # - Claro Costa Rica
7
9
  # - Claro Guatemala
8
10
  # - Claro Honduras
11
+ # - Claro Nicaragua
12
+ # - Claro El Salvador
9
13
  module FromXNokiaMsisdnHttpRequestHeader
10
14
 
11
15
  def extract_from_x_nokia_msisdn_http_request_header(http_request_info)
@@ -23,8 +27,14 @@ module MobileSubscriber::Detection
23
27
  { mcc: "334", mnc: "020" }
24
28
  when 'GT' # Claro Guatemala:
25
29
  { mcc: "704", mnc: "01" }
30
+ when 'SV' # Claro El Salvador:
31
+ { mcc: "706", mnc: "01" }
26
32
  when 'HN' # Claro Honduras:
27
33
  { mcc: "708", mnc: "001" }
34
+ when 'NI' # Claro Nicaragua:
35
+ { mcc: "710", mnc: "21" }
36
+ when 'CR' # Claro Costa Rica
37
+ { mcc: "712", mnc: "03" }
28
38
  when 'AR' # Claro Argentina:
29
39
  { mcc: "722", mnc: "330" }
30
40
  end
@@ -1,4 +1,5 @@
1
1
  require 'mobile_subscriber/dictionaries/dialing_and_country_codes'
2
+
2
3
  module MobileSubscriber::Detection
3
4
 
4
5
  # Módulo que provee métodos de deteccion y validacion para MSISDN por el
@@ -8,7 +9,6 @@ module MobileSubscriber::Detection
8
9
  # - OI Brasil
9
10
  # - Movistar México
10
11
  # - Movistar Argentina
11
- # - Movistar Ecuador
12
12
  # - Movistar Perú
13
13
  module FromXUpCallingLineIdHttpRequestHeader
14
14
 
@@ -25,10 +25,10 @@ module MobileSubscriber::Detection
25
25
  network_id_tuple = case country_code
26
26
  when 'PE'
27
27
  if (via_header = http_request_info.headers['Via']).present? and via_header =~ /Comverse/i
28
- # Claro Peru:
28
+ # Claro Peru: (IP's 190.113.x)
29
29
  { mcc: "716", mnc: "10" }
30
30
  else
31
- # Movistar Peru:
31
+ # Movistar Peru: (IP's 190.238.x)
32
32
  { mcc: "716", mnc: "06" }
33
33
  end
34
34
  when 'BR'
@@ -46,8 +46,6 @@ module MobileSubscriber::Detection
46
46
  when 'AR' # Movistar Argentina:
47
47
  # TODO: Determine (if possible) the MNC (010 or 070)
48
48
  { mcc: "722", mnc: "010" }
49
- when 'EC' # Movistar Ecuador:
50
- { mcc: "740", mnc: "00" }
51
49
  end
52
50
 
53
51
  # Return only if we identified the network:
@@ -1,8 +1,11 @@
1
1
  require 'mobile_subscriber/dictionaries/dialing_and_country_codes'
2
+
2
3
  module MobileSubscriber::Detection
3
4
  # Módulo que provee métodos de deteccion y validacion para MSISDN por el
4
- # header de HTTP 'Msisdn':
5
- # - Comcel Colombia
5
+ # header de HTTP 'X-Up-Subno':
6
+ # - Claro Colombia
7
+ # - Claro Panamá
8
+ # - Comcel Colombia
6
9
  module FromXUpSubnoHttpRequestHeader
7
10
 
8
11
  def extract_from_x_up_subno_http_request_header(http_request_info)
@@ -16,8 +19,14 @@ module MobileSubscriber::Detection
16
19
  # Determine the Network Operator tuple (MCC + MNC):
17
20
  # TODO: Validate IP ranges, additional headers, etc.
18
21
  network_id_tuple = case country_code
19
- when 'CO' # Comcel Colombia
22
+ when 'CO'
23
+ # TODO: Discernir por ip/hostname
24
+ #{ mcc: "732", mnc: "101" } # Comcel Colombia
25
+
26
+ # Claro Colombia
20
27
  { mcc: "732", mnc: "101" }
28
+ when 'PA' # Claro Panamá:
29
+ { mcc: "714", mnc: "03" }
21
30
  end
22
31
 
23
32
  # Return only if we identified the network:
@@ -0,0 +1,37 @@
1
+ require 'mobile_subscriber/dictionaries/dialing_and_country_codes'
2
+
3
+ module MobileSubscriber::Detection
4
+
5
+ # Módulo que provee métodos de detección y validacion para MSISDN por el
6
+ # header de HTTP 'X-Wap-Msisdn':
7
+ # - Claro Chile
8
+ module FromXWapMsisdnHttpRequestHeader
9
+
10
+ def extract_from_x_wap_msisdn_http_request_header(http_request_info)
11
+ if msisdn = http_request_info.headers['X-Wap-Msisdn'] and msisdn.length >= 8
12
+
13
+ country_code = (
14
+ MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,2]] ||
15
+ MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,3]]
16
+ )
17
+
18
+ # Determine the Network Operator tuple (MCC + MNC):
19
+ # TODO: Validate IP ranges, additional headers, etc.
20
+ network_id_tuple = case country_code
21
+ when 'CL' # Claro Chile
22
+ { mcc: "730", mnc: "03" }
23
+ end
24
+
25
+ # Return only if we identified the network:
26
+ if network_id_tuple.present?
27
+ {
28
+ id: msisdn,
29
+ mobile_country_code: network_id_tuple[:mcc],
30
+ mobile_network_code: network_id_tuple[:mnc],
31
+ http_request_info: http_request_info
32
+ }
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,36 @@
1
+ require 'mobile_subscriber/dictionaries/dialing_and_country_codes'
2
+
3
+ module MobileSubscriber::Detection
4
+ # Módulo que provee métodos de detección y validacion para MSISDN por el
5
+ # header de HTTP 'X-Ztgo-Beareraddress':
6
+ # - Movistar Ecuador
7
+ module FromXZtgoBeareraddressHttpRequestHeader
8
+
9
+ def extract_from_x_ztgo_beareraddress_http_request_header(http_request_info)
10
+ if msisdn = http_request_info.headers['X-Ztgo-Beareraddress'] and msisdn.length >= 8
11
+
12
+ country_code = (
13
+ MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,2]] ||
14
+ MobileSubscriber::DIALING_COUNTRY_CODES[msisdn[0,3]]
15
+ )
16
+
17
+ # Determine the Network Operator tuple (MCC + MNC):
18
+ # TODO: Validate IP ranges, additional headers, etc.
19
+ network_id_tuple = case country_code
20
+ when 'EC' # Movistar Ecuador:
21
+ { mcc: "740", mnc: "00" }
22
+ end
23
+
24
+ # Return only if we identified the network:
25
+ if network_id_tuple.present?
26
+ {
27
+ id: msisdn,
28
+ mobile_country_code: network_id_tuple[:mcc],
29
+ mobile_network_code: network_id_tuple[:mnc],
30
+ http_request_info: http_request_info
31
+ }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,4 +1,5 @@
1
1
  module MobileSubscriber
2
+ # See: http://countrycode.org/
2
3
  # Diccionario de Dialing Country Codes => ISO country codes:
3
4
  DIALING_COUNTRY_CODES = {
4
5
  # Caribbean Islands' country codes are a mess!
@@ -6,13 +7,15 @@ module MobileSubscriber
6
7
  '1829' => 'DO', # Dominican Republic Overlay 1
7
8
  '1849' => 'DO', # Dominican Republic Overlay 2
8
9
 
10
+ '225' => 'CI', # Costa de Marfil
11
+
9
12
  '501' => 'BZ', # Belize
10
13
  '502' => 'GT', # Guatemala
11
14
  '503' => 'SV', # El Salvador
12
15
  '504' => 'HN', # Honduras
13
16
  '505' => 'NI', # Nicaragua
14
17
  '506' => 'CR', # Costa Rica
15
- '507' => 'CI', # Costa de Marfil
18
+ '507' => 'PA', # Panamá
16
19
  '509' => 'HT', # Haití
17
20
  '51' => 'PE', # Perú
18
21
  '52' => 'MX', # México
@@ -14,6 +14,9 @@ module MobileSubscriber
14
14
  extend MobileSubscriber::Detection::FromXUpCallingLineIdHttpRequestHeader
15
15
  extend MobileSubscriber::Detection::FromXUpChMsisdnHttpRequestHeader
16
16
  extend MobileSubscriber::Detection::FromXUpSubnoHttpRequestHeader
17
+ extend MobileSubscriber::Detection::FromXWapMsisdnHttpRequestHeader
18
+ extend MobileSubscriber::Detection::FromXWapSesiones3gMdnHttpRequestHeader
19
+ extend MobileSubscriber::Detection::FromXZtgoBeareraddressHttpRequestHeader
17
20
 
18
21
  def initialize(attributes={})
19
22
  @id = attributes.delete :id
@@ -1,3 +1,3 @@
1
1
  module MobileSubscriber
2
- VERSION = "1.0.0.alpha1"
2
+ VERSION = "1.0.0.alpha2"
3
3
  end
@@ -28,26 +28,6 @@ describe MobileSubscriber::Detection::FromMsisdnHttpRequestHeader do
28
28
  end
29
29
  end
30
30
 
31
- context "when given a request made from Claro Chile" do
32
- let(:test_request) { build :mobile_request_from_claro_chile }
33
-
34
- include_examples "of detection of msisdn from a valid chilean mobile network http request"
35
-
36
- it "has a :mobile_network_code value of '03'" do
37
- expect(subject[:mobile_network_code]).to eq '03'
38
- end
39
- end
40
-
41
- context "when given a request made from Claro Colombia" do
42
- let(:test_request) { build :mobile_request_from_claro_colombia }
43
-
44
- include_examples "of detection of msisdn from a valid colombian mobile network http request"
45
-
46
- it "has a :mobile_network_code value of '101'" do
47
- expect(subject[:mobile_network_code]).to eq '101'
48
- end
49
- end
50
-
51
31
  context "when given a request made from Claro Ecuador" do
52
32
  let(:test_request) { build :mobile_request_from_claro_ecuador }
53
33
 
@@ -58,6 +38,16 @@ describe MobileSubscriber::Detection::FromMsisdnHttpRequestHeader do
58
38
  end
59
39
  end
60
40
 
41
+ context "when given a request made from Claro República Dominicana" do
42
+ let(:test_request) { build :mobile_request_from_claro_dominican_republic }
43
+
44
+ include_examples "of detection of msisdn from a valid dominican mobile network http request"
45
+
46
+ it "has a :mobile_network_code value of '02'" do
47
+ expect(subject[:mobile_network_code]).to eq '02'
48
+ end
49
+ end
50
+
61
51
  end
62
52
 
63
53
  end
@@ -35,6 +35,16 @@ describe MobileSubscriber::Detection::FromXNokiaMsisdnHttpRequestHeader do
35
35
  end
36
36
  end
37
37
 
38
+ context "when given a request made from Claro Costa Rica" do
39
+ let(:test_request) { build :mobile_request_from_claro_costa_rica }
40
+
41
+ include_examples "of detection of msisdn from a valid costa rican mobile network http request"
42
+
43
+ it "has a :mobile_network_code value of '03'" do
44
+ expect(subject[:mobile_network_code]).to eq '03'
45
+ end
46
+ end
47
+
38
48
  context "when given a request made from Claro Guatemala" do
39
49
  let(:test_request) { build :mobile_request_from_claro_guatemala }
40
50
 
@@ -54,6 +64,26 @@ describe MobileSubscriber::Detection::FromXNokiaMsisdnHttpRequestHeader do
54
64
  expect(subject[:mobile_network_code]).to eq '001'
55
65
  end
56
66
  end
67
+
68
+ context "when given a request made from Claro Nicaragua" do
69
+ let(:test_request) { build :mobile_request_from_claro_nicaragua }
70
+
71
+ include_examples "of detection of msisdn from a valid nicaraguan mobile network http request"
72
+
73
+ it "has a :mobile_network_code value of '21'" do
74
+ expect(subject[:mobile_network_code]).to eq '21'
75
+ end
76
+ end
77
+
78
+ context "when given a request made from Claro El Salvador" do
79
+ let(:test_request) { build :mobile_request_from_claro_el_salvador }
80
+
81
+ include_examples "of detection of msisdn from a valid salvadoran mobile network http request"
82
+
83
+ it "has a :mobile_network_code value of '01'" do
84
+ expect(subject[:mobile_network_code]).to eq '01'
85
+ end
86
+ end
57
87
  end
58
88
 
59
89
  end
@@ -0,0 +1,43 @@
1
+ require "spec_helper"
2
+
3
+ describe MobileSubscriber::Detection::FromXUpSubnoHttpRequestHeader do
4
+
5
+ include described_class
6
+
7
+ let :test_request do
8
+ build :mobile_request_from_claro_colombia
9
+ end
10
+
11
+ let :test_request_info do
12
+ MobileSubscriber::Detection::HttpRequestInfo.new test_request.env
13
+ end
14
+
15
+ describe "the returned object of self.extract_from_msisdn_http_request_header" do
16
+
17
+ subject do
18
+ extract_from_x_up_subno_http_request_header test_request_info
19
+ end
20
+
21
+ context "when given a request made from Claro Colombia" do
22
+
23
+ include_examples "of detection of msisdn from a valid colombian mobile network http request"
24
+
25
+ it "has a :mobile_network_code value of '101'" do
26
+ expect(subject[:mobile_network_code]).to eq '101'
27
+ end
28
+ end
29
+
30
+ context "when given a request made from Claro Panamá" do
31
+
32
+ let(:test_request) { build :mobile_request_from_claro_panama }
33
+
34
+ include_examples "of detection of msisdn from a valid panamanian mobile network http request"
35
+
36
+ it "has a :mobile_network_code value of '03'" do
37
+ expect(subject[:mobile_network_code]).to eq '03'
38
+ end
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ describe MobileSubscriber::Detection::FromXWapMsisdnHttpRequestHeader do
4
+
5
+ include described_class
6
+
7
+ let :test_request do
8
+ build :mobile_request_from_claro_chile
9
+ end
10
+
11
+ let :test_request_info do
12
+ MobileSubscriber::Detection::HttpRequestInfo.new test_request.env
13
+ end
14
+
15
+ describe "the returned object of self.extract_from_msisdn_http_request_header" do
16
+
17
+ subject do
18
+ extract_from_x_wap_msisdn_http_request_header test_request_info
19
+ end
20
+
21
+ context "when given a request made from Claro Chile" do
22
+
23
+ include_examples "of detection of msisdn from a valid chilean mobile network http request"
24
+
25
+ it "has a :mobile_network_code value of '03'" do
26
+ expect(subject[:mobile_network_code]).to eq '03'
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -61,12 +61,22 @@ FactoryGirl.define do
61
61
  end
62
62
  end
63
63
 
64
+ # TODO: Replace with a real example:
65
+ factory :mobile_request_from_claro_dominican_republic do
66
+ initialize_with do
67
+ new build(:common_mobile_request_env).merge(
68
+ "REMOTE_ADDR" => "181.37.104.3",
69
+ "HTTP_MSISDN" => "18098591800"
70
+ )
71
+ end
72
+ end
73
+
64
74
  # http://ns.myip.ms/view/ip_owners/181034/Claro_Chile_S_a.html
65
75
  factory :mobile_request_from_claro_chile do
66
76
  initialize_with do
67
77
  new build(:common_mobile_request_env).merge(
68
78
  "REMOTE_ADDR" => "191.116.39.114",
69
- "HTTP_MSISDN" => "56024440000"
79
+ "HTTP_X_WAP_MSISDN" => "56024440000"
70
80
  )
71
81
  end
72
82
  end
@@ -75,7 +85,17 @@ FactoryGirl.define do
75
85
  initialize_with do
76
86
  new build(:common_mobile_request_env).merge(
77
87
  "REMOTE_ADDR" => "200.26.137.100",
78
- "HTTP_MSISDN" => "57000000000"
88
+ "HTTP_X_UP_SUBNO" => "57000000000"
89
+ )
90
+ end
91
+ end
92
+
93
+ # TODO: Replace with a real example request:
94
+ factory :mobile_request_from_claro_costa_rica do
95
+ initialize_with do
96
+ new build(:common_mobile_request_env).merge(
97
+ "REMOTE_ADDR" => "186.26.126.37",
98
+ "HTTP_X_NOKIA_MSISDN" => "50600000000"
79
99
  )
80
100
  end
81
101
  end
@@ -113,6 +133,26 @@ FactoryGirl.define do
113
133
  end
114
134
  end
115
135
 
136
+ # TODO: Replace with a real example request:
137
+ factory :mobile_request_from_claro_nicaragua do
138
+ initialize_with do
139
+ new build(:common_mobile_request_env).merge(
140
+ "REMOTE_ADDR" => "190.212.88.8",
141
+ "HTTP_X_NOKIA_MSISDN" => "50500000000"
142
+ )
143
+ end
144
+ end
145
+
146
+ # TODO: Replace with a real example request:
147
+ factory :mobile_request_from_claro_el_salvador do
148
+ initialize_with do
149
+ new build(:common_mobile_request_env).merge(
150
+ "REMOTE_ADDR" => "190.86.139.225",
151
+ "HTTP_X_NOKIA_MSISDN" => "50300000000"
152
+ )
153
+ end
154
+ end
155
+
116
156
  # http://myip.ms/view/ip_owners/90291/America_Movil_Peru_S_a_c.html
117
157
  factory :mobile_request_from_claro_peru do
118
158
  initialize_with do
@@ -133,6 +173,16 @@ FactoryGirl.define do
133
173
  end
134
174
  end
135
175
 
176
+ # TODO: Replace with a real example:
177
+ factory :mobile_request_from_claro_panama do
178
+ initialize_with do
179
+ new build(:common_mobile_request_env).merge(
180
+ "REMOTE_ADDR" => "181.178.231.8",
181
+ "HTTP_X_UP_SUBNO" => "5070000000"
182
+ )
183
+ end
184
+ end
185
+
136
186
  # http://myip.ms/view/ip_owners/7424/Telefonica_Del_Peru_Saa.html
137
187
  factory :mobile_request_from_movistar_peru do
138
188
  initialize_with do
@@ -44,7 +44,12 @@ describe MobileSubscriber::ISDN do
44
44
 
45
45
  describe "detection from request headers" do
46
46
 
47
- shared_examples "of detection from a valid request" do
47
+ context "from a request made from a valid mobile network" do
48
+
49
+ subject do
50
+ described_class.new_from_request(build :mobile_request_from_telcel_mexico)
51
+ end
52
+
48
53
  it "is not nil" do
49
54
  expect(subject).not_to be_nil
50
55
  end
@@ -56,186 +61,33 @@ describe MobileSubscriber::ISDN do
56
61
  it "responds to #inspect with a string containing '(validated by HTTP)'" do
57
62
  expect(subject.inspect).to match /\(validated by HTTP\)>\z/
58
63
  end
59
- end
60
-
61
- # of detection from a request made from a {Demonym} mobile network:
62
- shared_examples "of detection from a request made from a mexican mobile network" do
63
- it "responds to #id with a string starting with '52'" do
64
- expect(subject.id).to match /\A52/
65
- end
66
-
67
- it "responds to #mobile_country_code with '334'" do
68
- expect(subject.mobile_country_code).to eq '334'
69
- end
70
-
71
- it "responds to #dialing_code with '52'" do
72
- expect(subject.dialing_code).to eq '52'
73
- end
74
-
75
- it "responds to #iso_3166_country_code with 'MX'" do
76
- expect(subject.iso_3166_country_code).to eq 'MX'
77
- end
78
- end
79
-
80
- shared_examples "of detection from a request made from an argentinian mobile network" do
81
- it "responds to #id with a string starting with '54'" do
82
- expect(subject.id).to match /\A54/
83
- end
84
-
85
- it "responds to #mobile_country_code with '722'" do
86
- expect(subject.mobile_country_code).to eq '722'
87
- end
88
-
89
- it "responds to #dialing_code with '54'" do
90
- expect(subject.dialing_code).to eq '54'
91
- end
92
-
93
- it "responds to #iso_3166_country_code with 'AR'" do
94
- expect(subject.iso_3166_country_code).to eq 'AR'
95
- end
96
- end
97
-
98
- shared_examples "of detection from a request made from a brazilian mobile network" do
99
- it "responds to #id with a string starting with '55'" do
100
- expect(subject.id).to match /\A55/
101
- end
102
-
103
- it "responds to #mobile_country_code with '724'" do
104
- expect(subject.mobile_country_code).to eq '724'
105
- end
106
-
107
- it "responds to #dialing_code with '55'" do
108
- expect(subject.dialing_code).to eq '55'
109
- end
110
-
111
- it "responds to #iso_3166_country_code with 'BR'" do
112
- expect(subject.iso_3166_country_code).to eq 'BR'
113
- end
114
- end
115
-
116
- shared_examples "of detection from a request made from a chilean mobile network" do
117
- it "responds to #id with a string starting with '56'" do
118
- expect(subject.id).to match /\A56/
119
- end
120
-
121
- it "responds to #mobile_country_code with '730'" do
122
- expect(subject.mobile_country_code).to eq '730'
123
- end
124
-
125
- it "responds to #dialing_code with '56'" do
126
- expect(subject.dialing_code).to eq '56'
127
- end
128
-
129
- it "responds to #iso_3166_country_code with 'CL'" do
130
- expect(subject.iso_3166_country_code).to eq 'CL'
131
- end
132
- end
133
-
134
- shared_examples "of detection from a request made from a peruvian mobile network" do
135
- it "responds to #id with a string starting with '51'" do
136
- expect(subject.id).to match /\A51/
137
- end
138
-
139
- it "responds to #mobile_country_code with '716'" do
140
- expect(subject.mobile_country_code).to eq '716'
141
- end
142
64
 
143
- it "responds to #dialing_code with '51'" do
144
- expect(subject.dialing_code).to eq '51'
65
+ it "#id is present" do
66
+ expect(subject.id).to be_present
145
67
  end
146
68
 
147
- it "responds to #iso_3166_country_code with 'PE'" do
148
- expect(subject.iso_3166_country_code).to eq 'PE'
149
- end
150
- end
151
-
152
- shared_examples "of detection from a request made from a Claro network" do
153
- it "responds to #mobile_network_brand with a string containing 'Claro'" do
154
- expect(subject.mobile_network_brand).to match /\AClaro/
155
- end
156
- end
157
-
158
- context "from a request made from Telcel México" do
159
-
160
- subject do
161
- described_class.new_from_request(build :mobile_request_from_telcel_mexico)
69
+ it "#mobile_country_code is present" do
70
+ expect(subject.mobile_country_code).to be_present
162
71
  end
163
72
 
164
- include_examples "of detection from a valid request"
165
- include_examples "of detection from a request made from a mexican mobile network"
166
-
167
- it "responds to #mobile_network_brand with 'Telcel'" do
168
- expect(subject.mobile_network_brand).to eq 'Telcel'
73
+ it "#dialing_code is present" do
74
+ expect(subject.dialing_code).to be_present
169
75
  end
170
76
 
171
- it "responds to #mobile_network_operator with 'América Móvil'" do
172
- expect(subject.mobile_network_operator).to eq 'América Móvil'
77
+ it "#iso_3166_country_code is present" do
78
+ expect(subject.iso_3166_country_code).to be_present
173
79
  end
174
80
 
175
- end
176
-
177
- context "from a request made from Claro Argentina" do
178
-
179
- subject do
180
- described_class.new_from_request(build :mobile_request_from_claro_argentina)
81
+ it "#mobile_network_brand is present" do
82
+ expect(subject.mobile_network_brand).to be_present
181
83
  end
182
84
 
183
- include_examples "of detection from a valid request"
184
- include_examples "of detection from a request made from an argentinian mobile network"
185
- include_examples "of detection from a request made from a Claro network"
186
-
187
- it "responds to #mobile_network_operator with 'AMX Argentina S.A.'" do
188
- expect(subject.mobile_network_operator).to eq 'AMX Argentina S.A.'
85
+ it "#mobile_network_operator is present" do
86
+ expect(subject.mobile_network_operator).to be_present
189
87
  end
190
88
 
191
89
  end
192
90
 
193
- context "from a request made from Claro Perú" do
194
-
195
- subject do
196
- described_class.new_from_request(build :mobile_request_from_claro_peru)
197
- end
198
-
199
- include_examples "of detection from a valid request"
200
- include_examples "of detection from a request made from a peruvian mobile network"
201
- include_examples "of detection from a request made from a Claro network"
202
-
203
- it "responds to #mobile_network_operator with 'América Móvil Perú'" do
204
- expect(subject.mobile_network_operator).to eq 'América Móvil Perú'
205
- end
206
-
207
- end
208
-
209
- context "from a request made from Claro Brasil" do
210
-
211
- subject do
212
- described_class.new_from_request(build :mobile_request_from_claro_brasil)
213
- end
214
-
215
- include_examples "of detection from a valid request"
216
- include_examples "of detection from a request made from a brazilian mobile network"
217
- include_examples "of detection from a request made from a Claro network"
218
-
219
- it "responds to #mobile_network_operator with 'Claro'" do
220
- expect(subject.mobile_network_operator).to eq 'Claro'
221
- end
222
- end
223
-
224
- context "from a request made from Claro Chile" do
225
-
226
- subject do
227
- described_class.new_from_request(build :mobile_request_from_claro_chile)
228
- end
229
-
230
- include_examples "of detection from a valid request"
231
- include_examples "of detection from a request made from a chilean mobile network"
232
- include_examples "of detection from a request made from a Claro network"
233
-
234
- it "responds to #mobile_network_operator with 'Claro Chile S.A.'" do
235
- expect(subject.mobile_network_operator).to eq 'Claro Chile S.A.'
236
- end
237
- end
238
-
239
91
  end
240
92
 
241
93
  end
@@ -92,6 +92,28 @@ shared_examples "of detection of msisdn from a valid chilean mobile network http
92
92
  end
93
93
  end
94
94
 
95
+ shared_examples "of detection of msisdn from a valid salvadoran mobile network http request" do
96
+ include_examples "of detection of msisdn from a valid mobile network http request"
97
+ it "has an :id value that starts with '503'" do
98
+ expect(subject[:id]).to match /\A503/
99
+ end
100
+
101
+ it "has a :mobile_country_code value of '706'" do
102
+ expect(subject[:mobile_country_code]).to eq '706'
103
+ end
104
+ end
105
+
106
+ shared_examples "of detection of msisdn from a valid costa rican mobile network http request" do
107
+ include_examples "of detection of msisdn from a valid mobile network http request"
108
+ it "has an :id value that starts with '506'" do
109
+ expect(subject[:id]).to match /\A506/
110
+ end
111
+
112
+ it "has a :mobile_country_code value of '712'" do
113
+ expect(subject[:mobile_country_code]).to eq '712'
114
+ end
115
+ end
116
+
95
117
  shared_examples "of detection of msisdn from a valid colombian mobile network http request" do
96
118
  include_examples "of detection of msisdn from a valid mobile network http request"
97
119
  it "has an :id value that starts with '57'" do
@@ -114,6 +136,39 @@ shared_examples "of detection of msisdn from a valid ecuadorian mobile network h
114
136
  end
115
137
  end
116
138
 
139
+ shared_examples "of detection of msisdn from a valid dominican mobile network http request" do
140
+ include_examples "of detection of msisdn from a valid mobile network http request"
141
+ it "has an :id value that starts with '1809'" do
142
+ expect(subject[:id]).to match /\A1809/
143
+ end
144
+
145
+ it "has a :mobile_country_code value of '370'" do
146
+ expect(subject[:mobile_country_code]).to eq '370'
147
+ end
148
+ end
149
+
150
+ shared_examples "of detection of msisdn from a valid nicaraguan mobile network http request" do
151
+ include_examples "of detection of msisdn from a valid mobile network http request"
152
+ it "has an :id value that starts with '505'" do
153
+ expect(subject[:id]).to match /\A505/
154
+ end
155
+
156
+ it "has a :mobile_country_code value of '710'" do
157
+ expect(subject[:mobile_country_code]).to eq '710'
158
+ end
159
+ end
160
+
161
+ shared_examples "of detection of msisdn from a valid panamanian mobile network http request" do
162
+ include_examples "of detection of msisdn from a valid mobile network http request"
163
+ it "has an :id value that starts with '507'" do
164
+ expect(subject[:id]).to match /\A507/
165
+ end
166
+
167
+ it "has a :mobile_country_code value of '714'" do
168
+ expect(subject[:mobile_country_code]).to eq '714'
169
+ end
170
+ end
171
+
117
172
  shared_examples "of detection of msisdn from a valid peruvian mobile network http request" do
118
173
  include_examples "of detection of msisdn from a valid mobile network http request"
119
174
  it "has an :id value that starts with '51'" 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.alpha1
4
+ version: 1.0.0.alpha2
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-11 00:00:00.000000000 Z
11
+ date: 2015-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -118,7 +118,9 @@ files:
118
118
  - lib/mobile_subscriber/detection/from_x_up_calling_line_id_http_request_header.rb
119
119
  - lib/mobile_subscriber/detection/from_x_up_ch_msisdn_http_request_header.rb
120
120
  - lib/mobile_subscriber/detection/from_x_up_subno_http_request_header.rb
121
+ - lib/mobile_subscriber/detection/from_x_wap_msisdn_http_request_header.rb
121
122
  - lib/mobile_subscriber/detection/from_x_wap_sesiones3g_mdn_http_request_header.rb
123
+ - lib/mobile_subscriber/detection/from_x_ztgo_beareraddress_http_request_header.rb
122
124
  - lib/mobile_subscriber/detection/http_request_info.rb
123
125
  - lib/mobile_subscriber/dictionaries/dialing_and_country_codes.rb
124
126
  - lib/mobile_subscriber/dictionaries/mobile_and_iso_country_codes.rb
@@ -130,6 +132,8 @@ files:
130
132
  - spec/detection/from_msisdn_http_request_header_spec.rb
131
133
  - spec/detection/from_x_nokia_msisdn_http_request_header_spec.rb
132
134
  - spec/detection/from_x_up_calling_line_id_http_request_header_spec.rb
135
+ - spec/detection/from_x_up_subno_http_request_header_spec.rb
136
+ - spec/detection/from_x_wap_msisdn_http_request_header_spec.rb
133
137
  - spec/detection/from_x_wap_sesiones3g_mdn_http_request_header_spec.rb
134
138
  - spec/factories/requests.rb
135
139
  - spec/mobile_subscriber_spec.rb
@@ -166,6 +170,8 @@ test_files:
166
170
  - spec/detection/from_msisdn_http_request_header_spec.rb
167
171
  - spec/detection/from_x_nokia_msisdn_http_request_header_spec.rb
168
172
  - spec/detection/from_x_up_calling_line_id_http_request_header_spec.rb
173
+ - spec/detection/from_x_up_subno_http_request_header_spec.rb
174
+ - spec/detection/from_x_wap_msisdn_http_request_header_spec.rb
169
175
  - spec/detection/from_x_wap_sesiones3g_mdn_http_request_header_spec.rb
170
176
  - spec/factories/requests.rb
171
177
  - spec/mobile_subscriber_spec.rb