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 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