fakie 0.1.4 → 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: 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