diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2016-04-05 00:36:10 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2016-04-05 00:36:10 -0300 |
commit | 307eede533852406b887a30bbd1483da80b9dc71 (patch) | |
tree | 3a72e660191cab46ad7a875c4cd45a6420b6eae2 /activesupport/lib/active_support/number_helper | |
parent | dcffeaea66130a8aa5f1591912bd8a335960bc14 (diff) | |
parent | 4e977da541307dd650917b49e9410a3ca753a944 (diff) | |
download | rails-307eede533852406b887a30bbd1483da80b9dc71.tar.gz rails-307eede533852406b887a30bbd1483da80b9dc71.tar.bz2 rails-307eede533852406b887a30bbd1483da80b9dc71.zip |
Merge pull request #24401 from pan/number-to-phone
`number_to_phone` formats number with regexp
Diffstat (limited to 'activesupport/lib/active_support/number_helper')
-rw-r--r-- | activesupport/lib/active_support/number_helper/number_to_phone_converter.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/number_helper/number_to_phone_converter.rb b/activesupport/lib/active_support/number_helper/number_to_phone_converter.rb index af2ee56d91..dee74fa7a6 100644 --- a/activesupport/lib/active_support/number_helper/number_to_phone_converter.rb +++ b/activesupport/lib/active_support/number_helper/number_to_phone_converter.rb @@ -18,12 +18,16 @@ module ActiveSupport end def convert_with_area_code(number) - number.gsub!(/(\d{1,3})(\d{3})(\d{4}$)/,"(\\1) \\2#{delimiter}\\3") + default_pattern = /(\d{1,3})(\d{3})(\d{4}$)/ + number.gsub!(regexp_pattern(default_pattern), + "(\\1) \\2#{delimiter}\\3") number end def convert_without_area_code(number) - number.gsub!(/(\d{0,3})(\d{3})(\d{4})$/,"\\1#{delimiter}\\2#{delimiter}\\3") + default_pattern = /(\d{0,3})(\d{3})(\d{4})$/ + number.gsub!(regexp_pattern(default_pattern), + "\\1#{delimiter}\\2#{delimiter}\\3") number.slice!(0, 1) if start_with_delimiter?(number) number end @@ -43,6 +47,11 @@ module ActiveSupport def phone_ext(ext) ext.blank? ? "" : " x #{ext}" end + + def regexp_pattern(default_pattern) + opts.fetch :pattern, default_pattern + end + end end end |