phone_parser 0.1.0 → 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: d94ee0138b07fe9f25d6d88e05cc52198dd54834
4
- data.tar.gz: 6c6f90d28259507055ce7f86764615bf9bc143c5
3
+ metadata.gz: 8e477e414e9550627dd6f8b39efdccfe4854aa4d
4
+ data.tar.gz: 3859f2d8be696a39f017c7036b48f9fceeeb1b09
5
5
  SHA512:
6
- metadata.gz: 9d0eb5931f13ca81876495f80e4025b7de956a61ac33a2d378f4c79872d0010b0ac6cfce2c448471c03f7acf46c76a80421176f09128e25f891bea035de46be2
7
- data.tar.gz: 64b7209939065e7f6c70bd14732028238e49414bc8735a6a86e805ac4965744e4a8fb58c335d8ea802d09f72cbeaa8a337ff6d1fec93a8160c6ae4058ef8731f
6
+ metadata.gz: 9c3bac96917f84cb381782152cf6433ecb8c9dd5805c0a2d0a5610efabedc70e38729d16fd3abfc5d885d588f71906d5b360c3d61b404b702ffaa24ea85df01c
7
+ data.tar.gz: b41ec3ba71cf4ecd4ced2b03d1001079e1998d717a55276428db7bb10b0546d49178c9e8bf22d8363e8f24cbbe43be6a5c21f2172c8eac4c44a1afdf69178de4
data/README.md CHANGED
@@ -22,7 +22,33 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ To parse phone numbers without an area code:
26
+
27
+ ```ruby
28
+ PhoneParser.parse('555-555-5555') # => '5555555555'
29
+ PhoneParser.parse('5555555555') # => '5555555555'
30
+ PhoneParser.parse('(555) 555-5555') # => '5555555555'
31
+ PhoneParser.parse('555.555.5555') # => '5555555555'
32
+ PhoneParser.parse('555 555.5555') # => '5555555555'
33
+ PhoneParser.parse('555 555.5555') # => '5555555555'
34
+ ```
35
+
36
+ It will throw an error if an invalid phone number is passed to the parser:
37
+
38
+ ```ruby
39
+ PhoneParser.parse('5555555') # => PhoneLengthError
40
+ PhoneParser.parse('') # => PhoneLengthError
41
+ ```
42
+
43
+ If a country code is supplied, the parser will verify that the code is valid, it will throw a `CountryCodeError` if the country code isn't valid:
44
+
45
+ ```ruby
46
+ PhoneParser.parse('+15555555555') # => '15555555555'
47
+ PhoneParser.parse('1-7845555555555') # => '17845555555555'
48
+ PhoneParser.parse('Country Code: 379, Phone: 555-555-5555') # => '3795555555555'
49
+ PhoneParser.parse('3795555555555') # => '3795555555555'
50
+ PhoneParser.parse('999 555 555 5555') # => CountryCodeError
51
+ ```
26
52
 
27
53
  ## Development
28
54
 
@@ -1,3 +1,3 @@
1
1
  module PhoneParser
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/phone_parser.rb CHANGED
@@ -4,19 +4,19 @@ require "phone_parser/country_codes"
4
4
  module PhoneParser
5
5
  include CountryCodes
6
6
 
7
- def self.parse(number)
7
+ def self.parse(number, country_code: '1')
8
8
  number.delete!("^0-9")
9
9
  digit_length_validator(number)
10
- country_code_validator(number)
10
+ country_code_validator(number, country_code)
11
11
  end
12
12
 
13
13
  def self.digit_length_validator number
14
14
  number.length < 10 ? (raise PhoneLengthError) : (number)
15
15
  end
16
16
 
17
- def self.country_code_validator number
17
+ def self.country_code_validator number, country_code
18
18
  if number.length == 10
19
- number
19
+ country_code + number
20
20
  else
21
21
  extracted_number = number[-10..-1]
22
22
  country_code = number.gsub(extracted_number, '')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phone_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan Hudgens
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-21 00:00:00.000000000 Z
11
+ date: 2017-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler