countries-phone_numbers 1.0.2 → 1.0.3

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: d561853e9d3760b3c102f70af3c152e408fa9dd8
4
- data.tar.gz: 1932567b1f8f0eb4d59ad6a3ef59ddfd3608bcb9
3
+ metadata.gz: adc5cf4e2bbdf410f395c091ab9eb5ed0019cb6d
4
+ data.tar.gz: 91f80213099c41d8a05ff0b46cbaacd8602a5dcc
5
5
  SHA512:
6
- metadata.gz: 4c5509d2d0833276557c97c552699e32fabbb91fb4002e3fbffd4206ac3a61371e1ed275cf4ae1b25c4ea827dae87a62536c0107ee6aa2b5464c3cea0f7a0585
7
- data.tar.gz: e890000ca9caa47e6fb411cd184cf7bcbadc7bcffac471dd64ba91ba72048683601afaea0fb88903f3c2a7845d7478487b4d1d55287f9c35d5186a4cb6248190
6
+ metadata.gz: 8f6fe4700f0c6077957574e989866c7b53a9091594652e0eed78904f90ca13794e52615a4a3a5ec88c693bd2cc00523e38b739c85831ec2a531eb29ac641938a
7
+ data.tar.gz: 03718c0520e2d9c2673d5a24cc5db31706b8e47eba7f7142385e816b446303a12cd350f4096d7a8ead26ae63cd4c150f5f5e336f9464af4bde6d6fbd469b6a92
@@ -4,23 +4,12 @@ module Countries::PhoneNumbers::Extensions
4
4
  base.extend ClassMethods
5
5
  end
6
6
 
7
- def format_phone_number( number, options={} )
8
- Phony.formatted( Phony.normalize( number ), options )
9
- end
10
-
11
- def format_local_phone_number( number, options={} )
12
- format_phone_number( number, {format: :local}.merge(options) )
13
- end
14
-
15
- def format_international_phone_number( number, options={} )
16
- format_phone_number( number, {format: :international}.merge(options) )
17
- end
18
-
19
- def format_national_phone_number( number, options={} )
20
- format_phone_number( number, {format: :national}.merge(options) )
21
- end
22
-
23
7
  module ClassMethods
8
+
9
+ def plausible_phone_number?( number )
10
+ Phony.plausible?( number )
11
+ end
12
+
24
13
  def normalize_phone_number( number )
25
14
  Phony.normalize( number )
26
15
  end
@@ -60,7 +49,7 @@ module Countries::PhoneNumbers::Extensions
60
49
  ##
61
50
  # Find the first country by the given telephone number. Returns the country object itself.
62
51
  def find_country_by_phone_number( number )
63
- found = Country.find_all_countries_by_phone_number(number)
52
+ found = find_all_countries_by_phone_number(number)
64
53
  found.nil? ? nil : found.first
65
54
  end
66
55
 
@@ -1,5 +1,5 @@
1
1
  module Countries
2
2
  module PhoneNumbers
3
- VERSION = "1.0.2"
3
+ VERSION = "1.0.3"
4
4
  end
5
5
  end
@@ -1,30 +1,12 @@
1
1
  require 'spec_helper'
2
2
  require 'countries/phone_numbers/ext_finders'
3
+ require 'countries/phone_numbers/ext_formatters'
3
4
 
4
- describe ISO3166::Country, '#find_*_by_phone_number' do
5
- subject { Country }
5
+ describe ISO3166::Country do
6
6
 
7
- # Test a bogus phone number
8
- it 'ignores bogus phone numbers (single digit)' do
9
- subject.find_country_by_phone_number( '5' ).should == nil
10
- end
11
-
12
- # Test another bogus phone number
13
- it 'ignores bogus phone numbers (text)' do
14
- subject.find_country_by_phone_number( 'abc' ).should == nil
15
- end
7
+ subject { Country }
16
8
 
17
- # Test all data given in the 'TEST' block (defined in the spec helper)
18
- TEST_DATA.each do |alpha2, numbers|
19
- numbers.each do |number|
20
- it "recognises #{number} as #{alpha2.to_s}" do
21
- subject.find_country_by_phone_number(number).should_not be_nil
22
- subject.find_country_by_phone_number(number).alpha2.should == alpha2.to_s
23
- end
24
- it "returns only one country for #{number}" do
25
- subject.find_all_countries_by_phone_number(number).should have(1).country
26
- end
27
- end
28
- end
9
+ it_behaves_like 'a phone number finder'
10
+ it_behaves_like 'a phone number formatter'
29
11
 
30
12
  end
@@ -1,32 +1,11 @@
1
1
  require 'spec_helper'
2
2
  require 'countries/phone_numbers'
3
3
 
4
- describe Countries::PhoneNumbers, '#find_*_by_phone_number' do
5
- subject { Countries::PhoneNumbers }
6
-
7
- # Test a bogus phone number
8
- it 'ignores bogus phone numbers (single digit)' do
9
- subject.find_country_by_phone_number( '5' ).should == nil
10
- end
11
-
12
- # Test another bogus phone number
13
- it 'ignores bogus phone numbers (text)' do
14
- subject.find_country_by_phone_number( 'abc' ).should == nil
15
- end
16
-
17
- # Test all data given in the 'TEST' block above
18
- TEST_DATA.each do |alpha2, numbers|
19
- numbers.each do |number|
20
- it "recognises #{number} as #{alpha2.to_s}" do
21
- subject.find_country_by_phone_number(number).should_not be_nil
22
- subject.find_country_by_phone_number(number).alpha2.should == alpha2.to_s
23
- end
24
- it "returns only one country for #{number}" do
25
- subject.find_all_countries_by_phone_number(number).should have(1).country
26
- end
27
- end
28
- end
4
+ describe Countries::PhoneNumbers do
29
5
 
6
+ it_behaves_like 'a phone number finder'
7
+ it_behaves_like 'a phone number formatter'
8
+
30
9
  Countries::PhoneNumbers.unresolved_country_codes.each do |country_code, countries|
31
10
  pending "Need to resolve CC: #{country_code} for #{countries.join(', ')}."
32
11
  end
@@ -10,6 +10,10 @@ require 'countries/phone_numbers'
10
10
  require 'yaml'
11
11
  TEST_DATA = YAML.load_file( File.join( File.dirname(__FILE__), 'test_data.yaml' ) )
12
12
 
13
+ # Requires supporting ruby files with custom matchers and macros, etc,
14
+ # in spec/support/ and its subdirectories.
15
+ Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each {|f| require f}
16
+
13
17
  # This file was generated by the `rspec --init` command. Conventionally, all
14
18
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
15
19
  # Require this file using `require "spec_helper"` to ensure that it is only
@@ -18,8 +22,11 @@ TEST_DATA = YAML.load_file( File.join( File.dirname(__FILE__), 'test_data.yaml'
18
22
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
23
  RSpec.configure do |config|
20
24
  config.treat_symbols_as_metadata_keys_with_true_values = true
25
+
26
+ # Filter
27
+ config.filter_run :focus => true
28
+ config.filter_run_excluding :skip
21
29
  config.run_all_when_everything_filtered = true
22
- config.filter_run :focus
23
30
 
24
31
  # Run specs in random order to surface order dependencies. If you find an
25
32
  # order dependency and want to debug it, you can fix the order by providing
@@ -0,0 +1,33 @@
1
+ shared_examples 'a phone number finder' do |factory|
2
+
3
+ # Test a bogus phone number
4
+ it 'ignores bogus phone numbers (single digit)' do
5
+ subject.find_country_by_phone_number( '5' ).should == nil
6
+ end
7
+
8
+ # Test another bogus phone number
9
+ it 'ignores bogus phone numbers (text)' do
10
+ subject.find_country_by_phone_number( 'abc' ).should == nil
11
+ end
12
+
13
+ # Test all data given in the 'TEST' block (defined in the spec helper)
14
+ TEST_DATA.each do |alpha2, numbers|
15
+ numbers.each do |number|
16
+
17
+ it "recognises #{number} as #{alpha2}" do
18
+ subject.find_country_by_phone_number(number).should_not be_nil
19
+ subject.find_country_by_phone_number(number).alpha2.should == alpha2.to_s
20
+ end
21
+
22
+ it "returns only one country for #{number}" do
23
+ subject.find_all_countries_by_phone_number(number).should have(1).country
24
+ end
25
+
26
+ it "recognises #{number} as plausible" do
27
+ subject.plausible_phone_number?(number).should eq(Phony.plausible?(number))
28
+ end
29
+
30
+ end # number
31
+ end # test data
32
+
33
+ end
@@ -0,0 +1,20 @@
1
+ shared_examples 'a phone number formatter' do |factory|
2
+
3
+ # Test all data given in the 'TEST' block (defined in the spec helper)
4
+ TEST_DATA.each do |alpha2, numbers|
5
+ numbers.each do |number|
6
+
7
+ it "formats #{number} internationally" do
8
+ expected = Phony.format(Phony.normalize(number), format: :international)
9
+ subject.format_international_phone_number(number).should eq(expected)
10
+ end
11
+
12
+ it "formats #{number} nationally" do
13
+ expected = Phony.format(Phony.normalize(number), format: :national)
14
+ subject.format_national_phone_number(number).should eq(expected)
15
+ end
16
+
17
+ end # number
18
+ end # test data
19
+
20
+ end
@@ -432,7 +432,6 @@ RW:
432
432
  - '250721234567'
433
433
  - '250731234567'
434
434
  - '250251234567'
435
- - '25006123456'
436
435
  ST:
437
436
  - '2392220012'
438
437
  - '2399920012'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: countries-phone_numbers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Lloyd
@@ -137,6 +137,8 @@ files:
137
137
  - spec/countries/phone_numbers/detector_factory_spec.rb
138
138
  - spec/countries/phone_numbers_spec.rb
139
139
  - spec/spec_helper.rb
140
+ - spec/support/acts_like_a_phone_number_finder.rb
141
+ - spec/support/acts_like_a_phone_number_formatter.rb
140
142
  - spec/test_data.yaml
141
143
  homepage: http://github.com/illoyd/countries-phone_numbers
142
144
  licenses:
@@ -167,4 +169,6 @@ test_files:
167
169
  - spec/countries/phone_numbers/detector_factory_spec.rb
168
170
  - spec/countries/phone_numbers_spec.rb
169
171
  - spec/spec_helper.rb
172
+ - spec/support/acts_like_a_phone_number_finder.rb
173
+ - spec/support/acts_like_a_phone_number_formatter.rb
170
174
  - spec/test_data.yaml