module ActiveSupport::NumberHelper

def number_to_phone(number, options = {})


# => "(755) 6123-4567"
number_to_phone(75561234567, pattern: /(\d{1,4})(\d{4})(\d{4})$/, area_code: true)
# => "133-1234-5678"
number_to_phone(13312345678, pattern: /(\d{3})(\d{4})(\d{4})$/)

three captures from the regexp are treated as digit groups.
A regexp that specifies how the digits should be grouped. The first
[+:pattern+]

# => "123-555-1234 x 555"
number_to_phone(1235551234, extension: 555)

An extension to append.
[+:extension+]

# => "+1-123-555-1234"
number_to_phone(1235551234, country_code: 1)

A country code to prepend.
[+:country_code+]

# => "123 555 1234"
number_to_phone(1235551234, delimiter: " ")

The digit group delimiter to use. Defaults to "-".
[+:delimiter+]

# => "(123) 555-1234"
number_to_phone(1235551234, area_code: true)

Whether to use parentheses for the area code. Defaults to false.
[+:area_code+]

==== Options

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

number_to_phone("12x34") # => "12x34"
number_to_phone(1235551234) # => "123-555-1234"
number_to_phone("5551234") # => "555-1234"
number_to_phone(5551234) # => "555-1234"

Formats +number+ into a phone number.
def number_to_phone(number, options = {})
  NumberToPhoneConverter.convert(number, options)
end