telein-client 0.1.2 → 0.2.0
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/lib/telein/client.rb +31 -11
- data/lib/telein/version.rb +1 -1
- data/spec/telein/client_spec.rb +13 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf452376aa876894548cda758ce3852b50000d39
|
4
|
+
data.tar.gz: d0e74d19b7e146124075d87991aea0141f8e2e30
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cc73b0933b263f95be1ae917a6a5cd6980eb5fa0ae251bdf2fea400338c798670add3bfe7ef00cf54374cb8205bcbc67fbf9fc6ef949fff03d2a10415f92df4
|
7
|
+
data.tar.gz: b52f29a359cb169a98351f5719e62c4b894fc564ff7516170cc738b7554aac3d62f3cfa94c5d135bc2129ae4e8801986538d1fc66c8653d68c8f253644cb43c0
|
data/lib/telein/client.rb
CHANGED
@@ -26,15 +26,17 @@ module Telein
|
|
26
26
|
# client.carrier_code_for('(12) 3434-5656') # => '41'
|
27
27
|
class Client
|
28
28
|
|
29
|
-
# Queries the Telein servers for the carrier code
|
30
|
-
#
|
29
|
+
# Queries the Telein servers for the carrier code and corrected
|
30
|
+
# phone number of value.
|
31
31
|
# @param value [String] A string supposedly containing phone information
|
32
|
-
# @return [Integer]
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
# @return [Array<Integer, String>] A pair with carrier code for value
|
33
|
+
# and corrected phone number.
|
34
|
+
private
|
35
|
+
def raw_query(value)
|
36
36
|
phone = Telein::Util::Phone.new(value)
|
37
37
|
|
38
|
+
return [999, value] unless Telein.api_key
|
39
|
+
|
38
40
|
if phone.valid?
|
39
41
|
Telein.servers.each do |server|
|
40
42
|
begin
|
@@ -49,23 +51,41 @@ module Telein
|
|
49
51
|
response = curl.body_str
|
50
52
|
|
51
53
|
# response parsing (carrier#number)
|
52
|
-
carrier_code,
|
54
|
+
carrier_code, number = response.split('#')
|
53
55
|
|
54
|
-
return 101 if carrier_code.to_i == 0
|
56
|
+
return [101, number] if carrier_code.to_i == 0
|
55
57
|
|
56
|
-
return carrier_code.to_i
|
58
|
+
return [carrier_code.to_i, number]
|
57
59
|
rescue
|
58
60
|
next
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
62
64
|
# all servers down
|
63
|
-
return 101
|
65
|
+
return [101, phone.to_telein_s]
|
64
66
|
else
|
65
67
|
# invalid phone
|
66
|
-
return 100
|
68
|
+
return [100, value]
|
67
69
|
end
|
68
70
|
end
|
71
|
+
# Wraps the query to the Telein servers for the carrier code and
|
72
|
+
# corrected phone number of value on a dictionary.
|
73
|
+
# @param value [String] A string supposedly containing phone information
|
74
|
+
# @return [Hash] with :carrier_code as the carrier code
|
75
|
+
# and :number as the corrected phone number.
|
76
|
+
public
|
77
|
+
def query(value)
|
78
|
+
carrier_code, number = raw_query(value)
|
79
|
+
return { :carrier_code => carrier_code, :number => number }
|
80
|
+
end
|
69
81
|
|
82
|
+
# Filters the query to the Telein servers so that it only returns
|
83
|
+
# the carrier code.
|
84
|
+
# @deprecated Use {#query} for greater functionality.
|
85
|
+
# @param value [String] A string supposedly containing phone information
|
86
|
+
# @return [Integer] The carrier code for value
|
87
|
+
def carrier_code_for(value)
|
88
|
+
return query(value)[:carrier_code]
|
89
|
+
end
|
70
90
|
end
|
71
91
|
end
|
data/lib/telein/version.rb
CHANGED
data/spec/telein/client_spec.rb
CHANGED
@@ -38,6 +38,19 @@ describe Telein::Client do
|
|
38
38
|
client.carrier_code_for('(12) 9434-5656').should == 41
|
39
39
|
end
|
40
40
|
|
41
|
+
it 'returns both carrier code and fixed number' do
|
42
|
+
Telein.servers.each do |server|
|
43
|
+
stub_request(:get,server.query_url_for('0000000000')).to_return(:body => '99#0000000000')
|
44
|
+
stub_request(:get,server.query_url_for('1234345656')).to_return(:body => '98#1234345656')
|
45
|
+
stub_request(:get,server.query_url_for('1294345656')).to_return(:body => '41#12994345656')
|
46
|
+
end
|
47
|
+
|
48
|
+
client = described_class.new
|
49
|
+
expect(client.query('(00) 0000-0000')).to eq({ carrier_code: 100, number: "(00) 0000-0000"})
|
50
|
+
expect(client.query('(12) 3434-5656')).to eq({ carrier_code: 98, number: "1234345656"})
|
51
|
+
expect(client.query('(12) 9434-5656')).to eq({ carrier_code: 41, number: "12994345656"})
|
52
|
+
end
|
53
|
+
|
41
54
|
it 'returns server error code when all endpoints are down' do
|
42
55
|
Telein.servers.each do |server|
|
43
56
|
stub_request(:get,server.query_url_for('0000000000')).to_timeout
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telein-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thiago Brandão Damasceno
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curb
|