fakie 0.1.4 → 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: fbc67521aac8f1b3c628a85ea9ad566d33c1f30e
4
- data.tar.gz: dd7da0cc98da52e819202fa864b5efd51c49889b
3
+ metadata.gz: c5b7707a06644202861a7239947d5fd60185a2b0
4
+ data.tar.gz: 9136e49130fcb5ad9a0a7adcde638ba9e5ac9f44
5
5
  SHA512:
6
- metadata.gz: c3f9b11cd34474347feffff8752136164552b23793d4f1b423b6ba1219e9419062fd6132404812d56e02a022578c9ce8d7810bd2fe3256a3f958afdf2db92197
7
- data.tar.gz: 78dfc861ccc720f14106ec67ae6f63428f47671eb89e005f1599e7ef0734eb85488e98e4128bbd8f35ad764d176777297900dcf218bcee46d9a4a3275e02472d
6
+ metadata.gz: 7a1adf924ad2b92f66754f4a3f7a1b1fb8e214ce3b02eebe64b00ba0995dca917b40a5341413e07d2954c46a50d5217452faa0cebad36abc02ee173cccf9147b
7
+ data.tar.gz: ece679bc47fd72348e1341e8662045c52f70f7417557d054ef1cbb7dccbdf0064bda255e668adb67a86ddfbc1b0c5980cd3d6293379633fb57567904cf1409fc
@@ -4,18 +4,24 @@ require 'fakie/java_script'
4
4
  require 'fakie/phone_number'
5
5
 
6
6
  module Fakie
7
- module_function
7
+ def self.default_options
8
+ @default_options || {}
9
+ end
10
+
11
+ def self.default_options=(options)
12
+ @default_options = options
13
+ end
8
14
 
9
15
  # Parse a phone number
10
16
  # @param phone_number [String] phone number to parse
11
17
  # @option options default_country [String] ISO 3166-1 two-letter country code
12
18
  # @return [PhoneNumber] phone number object
13
- def parse(phone_number, options = {})
19
+ def self.parse(phone_number, options = {})
14
20
  PhoneNumber.parse(phone_number, options)
15
21
  end
16
22
 
17
- def country_name_for_region_code(region_code)
18
- @@_country_name_map ||= {
23
+ def self.country_name_for_region_code(region_code)
24
+ @_country_name_map ||= {
19
25
  'AF' => "Afghanistan",
20
26
  'AL' => "Albania",
21
27
  'DZ' => "Algeria",
@@ -257,6 +263,6 @@ module Fakie
257
263
  'ZW' => "Zimbabwe"
258
264
  }
259
265
 
260
- @@_country_name_map[region_code.upcase]
266
+ @_country_name_map[region_code.upcase]
261
267
  end
262
268
  end
@@ -6,8 +6,11 @@ module Fakie
6
6
  # @option options default_country [String] ISO 3166-1 two-letter country code
7
7
  # @return [PhoneNumber] phone number object
8
8
  def parse(phone_number, options = {})
9
+ options = Fakie.default_options.merge(options)
9
10
  region_code = options[:default_country]
10
11
  self.new(JavaScript.call('Fakie.parse', phone_number, region_code))
12
+ rescue ExecJS::ProgramError => e
13
+ self.new({'raw_input' => phone_number, 'is_valid' => false})
11
14
  end
12
15
  end
13
16
 
@@ -51,11 +54,15 @@ module Fakie
51
54
  def international_format(region = self.region_code)
52
55
  raise InvalidPhoneNumber, self.raw_input unless self.is_valid?
53
56
  @international_format ||= JavaScript.call('Fakie.formatInternational', region, self.e164)
57
+ rescue ExecJS::ProgramError => e
58
+ self.e164
54
59
  end
55
60
 
56
61
  def local_format(region = self.region_code)
57
62
  raise InvalidPhoneNumber, self.raw_input unless self.is_valid?
58
63
  @local_format ||= JavaScript.call('Fakie.formatLocal', region, self.e164)
64
+ rescue ExecJS::ProgramError => e
65
+ self.e164
59
66
  end
60
67
 
61
68
  def country_name
@@ -1,3 +1,3 @@
1
1
  module Fakie
2
- VERSION = '0.1.4'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -9,5 +9,13 @@ module Fakie
9
9
  def test_invalid_country
10
10
  refute Fakie.country_name_for_region_code('ZZ')
11
11
  end
12
+
13
+ def test_default_options
14
+ refute Fakie.parse('4155550123').is_valid?
15
+
16
+ Fakie.default_options = { :default_country => 'US' }
17
+ assert Fakie.parse('4155550123').is_valid?
18
+ Fakie.default_options = nil
19
+ end
12
20
  end
13
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fakie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Soffes