phony_rails 0.14.9 → 0.14.10

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: a7e279baa79785d7c0db788f230299a530f95900
4
- data.tar.gz: 2b99f584e90f49369cd5114aac04e6b5c09f198b
3
+ metadata.gz: 383011d77dc615fbacdbf4ebe23f4c89db28122b
4
+ data.tar.gz: a123f3f39a984f21216f7f72b5031dda84b84c8c
5
5
  SHA512:
6
- metadata.gz: 6ae91b311ac825d4a8fe61b44d7b74ccfa515ab2702c017c5bcf32774b00fcd622ac29c1fea2da0b962643e848b69dcbef5a8871f5b3c92a1db87ff2cb8dc93b
7
- data.tar.gz: d3cdc2fdc49cabb7562b4916e6b56bd8eaf1b85c2d71b93813cda6dfb025a4538bc564115f30a2bde638717f682198915e38aae38258cfab5a297363e5d5551f
6
+ metadata.gz: 47a2c46b310e1b4af1d3a41cc5ababd92d7226dfac7c7f9509f9356774c9e81e8e455213f5d23c9ab91434c9d3143f0916ed90d59e21065040613396583ae163
7
+ data.tar.gz: e31193d4001b20da3d9ab6c737754b896d1a3ae8bdc8aa942c2b7766ba17439a2c751891bfb85bdbdfe484e823898ff9b8bef6e7c97d2cc59fe6e01519976fa1
@@ -1,5 +1,39 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.14.10](https://github.com/joost/phony_rails/tree/v0.14.10) (2018-10-11)
4
+ [Full Changelog](https://github.com/joost/phony_rails/compare/v0.14.9...v0.14.10)
5
+
6
+ **Closed issues:**
7
+
8
+ - PhonyRails.default\_country\_code too intrusive in plausible\_number? method [\#179](https://github.com/joost/phony_rails/issues/179)
9
+ - default\_country\_code overrides 00-prefix country code [\#175](https://github.com/joost/phony_rails/issues/175)
10
+ - Valid 260 area code number is reported as invalid [\#168](https://github.com/joost/phony_rails/issues/168)
11
+ - Croatian number not validating as plausible. [\#165](https://github.com/joost/phony_rails/issues/165)
12
+ - phony\_formatted not returning original String for non-digit only strings [\#163](https://github.com/joost/phony_rails/issues/163)
13
+ - should all normalized numbers be valid? [\#162](https://github.com/joost/phony_rails/issues/162)
14
+ - Extensions not working out of the box for validator [\#160](https://github.com/joost/phony_rails/issues/160)
15
+
16
+ **Merged pull requests:**
17
+
18
+ - Remove errant `puts` [\#188](https://github.com/joost/phony_rails/pull/188) ([stevenharman](https://github.com/stevenharman))
19
+ - Close issues [\#185](https://github.com/joost/phony_rails/pull/185) ([joost](https://github.com/joost))
20
+ - Better PhonyRails.plausible\_number? method. Closes \#179. [\#184](https://github.com/joost/phony_rails/pull/184) ([joost](https://github.com/joost))
21
+ - Allow numbers starting with 00 country codes. Closes \#175. [\#183](https://github.com/joost/phony_rails/pull/183) ([joost](https://github.com/joost))
22
+
23
+ ## [v0.14.9](https://github.com/joost/phony_rails/tree/v0.14.9) (2018-09-05)
24
+ [Full Changelog](https://github.com/joost/phony_rails/compare/v0.14.7...v0.14.9)
25
+
26
+ **Closed issues:**
27
+
28
+ - Cut new release 0.14.7 to include new extension removal logic [\#177](https://github.com/joost/phony_rails/issues/177)
29
+ - default\_country\_code based on relation [\#174](https://github.com/joost/phony_rails/issues/174)
30
+
31
+ **Merged pull requests:**
32
+
33
+ - Allow brackets. Closes \#170. [\#182](https://github.com/joost/phony_rails/pull/182) ([joost](https://github.com/joost))
34
+ - add lambda support for default country code [\#181](https://github.com/joost/phony_rails/pull/181) ([kimyu92](https://github.com/kimyu92))
35
+ - Add Spanish translation for validation error [\#178](https://github.com/joost/phony_rails/pull/178) ([r-sierra](https://github.com/r-sierra))
36
+
3
37
  ## [v0.14.7](https://github.com/joost/phony_rails/tree/v0.14.7) (2018-05-25)
4
38
  [Full Changelog](https://github.com/joost/phony_rails/compare/v0.14.6...v0.14.7)
5
39
 
@@ -127,7 +161,7 @@
127
161
  **Merged pull requests:**
128
162
 
129
163
  - Update readme [\#117](https://github.com/joost/phony_rails/pull/117) ([toydestroyer](https://github.com/toydestroyer))
130
- - Add uk, ru error message translations [\#114](https://github.com/joost/phony_rails/pull/114) ([shhavel](https://github.com/shhavel))
164
+ - Add uk, ru error message translations [\#114](https://github.com/joost/phony_rails/pull/114) ([sanavy](https://github.com/sanavy))
131
165
  - Update phony\_rails.gemspec [\#112](https://github.com/joost/phony_rails/pull/112) ([Agsiegert](https://github.com/Agsiegert))
132
166
  - Don't re-parse country codes YAML file every time it's needed. [\#111](https://github.com/joost/phony_rails/pull/111) ([jcoleman](https://github.com/jcoleman))
133
167
  - Replace countries dependency with YAML file [\#109](https://github.com/joost/phony_rails/pull/109) ([monfresh](https://github.com/monfresh))
@@ -76,7 +76,7 @@ module PhonyRails
76
76
  def self.normalize_number_default_country(number, default_country_number)
77
77
  # We try to add the default country number and see if it is a
78
78
  # correct phone number. See https://github.com/joost/phony_rails/issues/87#issuecomment-89324426
79
- unless number =~ /\A\(?\+/ # if we don't have a +
79
+ unless number =~ /\A\(?(\+|00)/ # if we don't have a + or 00
80
80
  return "#{default_country_number}#{number}" if Phony.plausible?("#{default_country_number}#{number}") || !Phony.plausible?(number) || country_code_from_number(number).nil?
81
81
  # If the number starts with ONE zero (two might indicate a country code)
82
82
  # and this is a plausible number for the default_country
@@ -97,11 +97,14 @@ module PhonyRails
97
97
  options[:default_country_number] || country_number_for(country_code) || default_country_number
98
98
  end
99
99
 
100
+ # Returns the country dail code (eg. '31') for a number (eg. +31612341234).
101
+ # Should probably be named 'country_number_from_number'.
100
102
  def self.country_code_from_number(number)
101
103
  return nil unless Phony.plausible?(number)
102
104
  Phony.split(Phony.normalize(number)).first
103
105
  end
104
106
 
107
+ # Returns the country (eg. 'NL') for a number (eg. +31612341234).
105
108
  def self.country_from_number(number)
106
109
  return nil unless Phony.plausible?(number)
107
110
  country_codes_hash.select { |_country, hash| hash['country_code'] == country_code_from_number(number) }.keys[0]
@@ -109,11 +112,13 @@ module PhonyRails
109
112
 
110
113
  # Wrapper for Phony.plausible?. Takes the same options as #normalize_number.
111
114
  # NB: This method calls #normalize_number and passes _options_ directly to that method.
115
+ # It uses the 'cc' option for Phony. This was a required param before?
112
116
  def self.plausible_number?(number, options = {})
113
117
  return false if number.blank?
114
118
  number = extract_extension(number).first
115
119
  number = normalize_number(number, options)
116
120
  country_number = options[:country_number] || country_number_for(options[:country_code]) ||
121
+ country_code_from_number(number) ||
117
122
  options[:default_country_number] || country_number_for(options[:default_country_code]) ||
118
123
  default_country_number
119
124
  Phony.plausible? number, cc: country_number
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PhonyRails
4
- VERSION = '0.14.9'
4
+ VERSION = '0.14.10'
5
5
  end
@@ -224,6 +224,18 @@ describe PhonyRails do
224
224
  phone = PhonyRails.normalize_number(phone, default_country_code: 'DE')
225
225
  expect(phone).to eq('+491751234567')
226
226
  end
227
+
228
+ it 'should pass Github issue #175' do
229
+ phone = '0041 23456789'
230
+ phone = PhonyRails.normalize_number(phone, default_country_code: 'DE')
231
+ expect(phone).to eq('+4123456789')
232
+ end
233
+
234
+ it 'should pass Github issue #175' do
235
+ phone = '+1 260-437-9123'
236
+ phone = PhonyRails.normalize_number(phone, default_country_code: 'DE')
237
+ expect(phone).to eq('+12604379123')
238
+ end
227
239
  end
228
240
 
229
241
  it 'should not change original String' do
@@ -409,6 +421,7 @@ describe PhonyRails do
409
421
  subject { described_class }
410
422
  let(:valid_number) { '1 555 555 5555' }
411
423
  let(:invalid_number) { '123456789 123456789 123456789 123456789' }
424
+ let(:another_invalid_number) { '441212' }
412
425
  let(:normalizable_number) { '555 555 5555' }
413
426
  let(:formatted_french_number_with_country_code) { '+33 627899541' }
414
427
  let(:empty_number) { '' }
@@ -418,8 +431,11 @@ describe PhonyRails do
418
431
  is_expected.to be_plausible_number valid_number, country_code: 'US'
419
432
  end
420
433
 
421
- it 'returns false for an invalid number' do
434
+ it 'returns false for an invalid numbers' do
435
+ is_expected.not_to be_plausible_number invalid_number
422
436
  is_expected.not_to be_plausible_number invalid_number, country_code: 'US'
437
+ is_expected.not_to be_plausible_number another_invalid_number
438
+ is_expected.not_to be_plausible_number another_invalid_number, country_code: 'US'
423
439
  end
424
440
 
425
441
  it 'returns true for a normalizable number' do
@@ -451,6 +467,10 @@ describe PhonyRails do
451
467
  is_expected.not_to be_plausible_number normalizable_number, country_code: 'US'
452
468
  end
453
469
 
470
+ it 'should pass Github issue #95' do
471
+ is_expected.to be_plausible_number '+358414955444', default_country_code: :de
472
+ end
473
+
454
474
  context 'with default_country_code set' do
455
475
  before { PhonyRails.default_country_code = 'FR' }
456
476
  after { PhonyRails.default_country_code = nil }
@@ -501,6 +521,12 @@ describe PhonyRails do
501
521
  end
502
522
  end
503
523
 
524
+ describe 'PhonyRails.country_code_from_number' do
525
+ it 'returns the code of the plausible phone number' do
526
+ expect(PhonyRails.country_code_from_number('+32475000000')).to eq '32'
527
+ end
528
+ end
529
+
504
530
  describe 'PhonyRails.country_from_number' do
505
531
  it 'returns the country of the plausible phone number' do
506
532
  expect(PhonyRails.country_from_number('+32475000000')).to eq 'BE'
@@ -180,6 +180,7 @@ POLISH_NUMBER_WITH_COUNTRY_CODE = '48600600600'
180
180
  FORMATTED_AUSTRALIAN_NUMBER_WITH_COUNTRY_CODE = '+61 390133997'
181
181
  FRENCH_NUMBER_WITH_COUNTRY_CODE = '33627899541'
182
182
  FORMATTED_FRENCH_NUMBER_WITH_COUNTRY_CODE = '+33 627899541'
183
+ CROATIA_NUMBER_WITH_COUNTRY_CODE = '385 98 352 085'
183
184
  INVALID_NUMBER = '123456789 123456789 123456789 123456789'
184
185
  NOT_A_NUMBER = 'HAHA'
185
186
  JAPAN_COUNTRY = 'jp'
@@ -593,6 +594,12 @@ describe ActiveModel::Validations::HelperMethods do
593
594
  expect(@home).to_not be_valid
594
595
  expect(@home.errors.messages).to include(phone_number: ['is an invalid number'])
595
596
  end
597
+
598
+ it 'should pass Gitlab issue #165' do
599
+ @home.phone_number = CROATIA_NUMBER_WITH_COUNTRY_CODE
600
+ @home.phone_number_country_code = 'HR'
601
+ expect(@home).to be_valid
602
+ end
596
603
  end
597
604
 
598
605
  #--------------------
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phony_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.9
4
+ version: 0.14.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joost Hietbrink
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-05 00:00:00.000000000 Z
11
+ date: 2018-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport