module ActionView::Helpers::NumberHelper

def number_to_phone(number, options = {})

# => +1.123.555.1234 x 1343
number_to_phone(1235551234, country_code: 1, extension: 1343, delimiter: ".")

number_to_phone("1234a567", raise: true) # => InvalidNumberError
number_to_phone("123a456") # => 123a456
number_to_phone(1235551234, country_code: 1) # => +1-123-555-1234
number_to_phone(1235551234, area_code: true, extension: 555) # => (123) 555-1234 x 555
number_to_phone(1235551234, delimiter: " ") # => 123 555 1234
number_to_phone(1235551234, area_code: true) # => (123) 555-1234
number_to_phone(1235551234) # => 123-555-1234
number_to_phone("5551234") # => 555-1234
number_to_phone(5551234) # => 555-1234

==== Examples

the argument is invalid.
* :raise - If true, raises +InvalidNumberError+ when
number.
* :country_code - Sets the country code for the phone
end of the generated number.
* :extension - Specifies an extension to add to the
(defaults to "-").
* :delimiter - Specifies the delimiter to use
* :area_code - Adds parentheses around the area code.

==== Options

123-9876). You can customize the format in the +options+ hash.
Formats a +number+ into a US phone number (e.g., (555)
def number_to_phone(number, options = {})
  return unless number
  options = options.symbolize_keys
  parse_float(number, true) if options.delete(:raise)
  ERB::Util.html_escape(ActiveSupport::NumberHelper.number_to_phone(number, options))
end