telein-client 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c44c3cceda568525149c516df84adec350ce2979
4
- data.tar.gz: a4bf9baa84c52e7d43e6b9eecf70f5f2812bb400
3
+ metadata.gz: bf452376aa876894548cda758ce3852b50000d39
4
+ data.tar.gz: d0e74d19b7e146124075d87991aea0141f8e2e30
5
5
  SHA512:
6
- metadata.gz: 344d0408e0146df2904dab11405e56ce89dc06e7270e09488c606025beb238bb9b508e808decf76c2528f731575dd24dbfc136946c30890b9e84723a91ecaf82
7
- data.tar.gz: 32200f66888504f448635204ba22e4d2049ece6ff3e77d9ad70c4d65f31c94308b5f9f3fa397df53c9bd359f3292ac3701034c47686966d9a3a4481931c004e5
6
+ metadata.gz: 9cc73b0933b263f95be1ae917a6a5cd6980eb5fa0ae251bdf2fea400338c798670add3bfe7ef00cf54374cb8205bcbc67fbf9fc6ef949fff03d2a10415f92df4
7
+ data.tar.gz: b52f29a359cb169a98351f5719e62c4b894fc564ff7516170cc738b7554aac3d62f3cfa94c5d135bc2129ae4e8801986538d1fc66c8653d68c8f253644cb43c0
@@ -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 of value
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] The carrier code for value
33
- def carrier_code_for(value)
34
- return 999 unless Telein.api_key
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, _ = response.split('#')
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
@@ -1,4 +1,4 @@
1
1
  module Telein
2
2
  # Telein version
3
- VERSION = "0.1.2"
3
+ VERSION = "0.2.0"
4
4
  end
@@ -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.1.2
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-08 00:00:00.000000000 Z
11
+ date: 2014-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curb