Class: PhoneNumber
- Inherits:
-
Object
- Object
- PhoneNumber
- Defined in:
- lib/phoney/base.rb,
lib/phoney/utils.rb,
lib/phoney/parser.rb,
lib/phoney/region.rb,
lib/phoney/version.rb
Defined Under Namespace
Modules: Parser, Utils, VERSION Classes: Region
Instance Attribute Summary collapse
-
#area_code ⇒ Object
Returns the value of attribute area_code.
-
#country_code ⇒ Object
Returns the value of attribute country_code.
-
#number ⇒ Object
Returns the value of attribute number.
-
#prefix_code ⇒ Object
Returns the value of attribute prefix_code.
Class Method Summary collapse
- .default_area_code ⇒ Object
- .default_area_code=(area_code) ⇒ Object
- .default_country_code ⇒ Object
- .default_country_code=(country_code) ⇒ Object
- .default_region ⇒ Object
- .default_region=(region) ⇒ Object
- .version ⇒ Object
Instance Method Summary collapse
-
#format(fmt) ⇒ Object
Formats the phone number.
-
#has_default_area_code? ⇒ Boolean
Does this number belong to the default area code?.
-
#has_default_country_code? ⇒ Boolean
Does this number belong to the default country code?.
-
#initialize(params, region_code = nil) ⇒ PhoneNumber
constructor
A new instance of PhoneNumber.
-
#to_s ⇒ Object
The default format is the canonical format: “+#country_code #area_code #number”.
Constructor Details
#initialize(params, region_code = nil) ⇒ PhoneNumber
Returns a new instance of PhoneNumber.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/phoney/base.rb', line 38 def initialize(params, region_code=nil) region = Region.find(region_code) country_code = region.country_code.to_s if region if params.is_a?(String) params = Parser.parse_to_parts(params, region_code) end self.number = params[:number].to_s # The rare case when some digits are in front of the area code self.prefix_code = params[:prefix_code].to_s # Can be empty, because some special numbers just don't have an area code (e.g. 911) self.area_code = params[:area_code].to_s || self.class.default_area_code self.country_code = params[:country_code].to_s || country_code || self.class.default_country_code raise "Must enter number" if(self.number.nil? || self.number.empty?) raise "Must enter country code or set default country code" if(self.country_code.nil? || self.country_code.empty?) end |
Instance Attribute Details
#area_code ⇒ Object
Returns the value of attribute area_code.
2 3 4 |
# File 'lib/phoney/base.rb', line 2 def area_code @area_code end |
#country_code ⇒ Object
Returns the value of attribute country_code.
2 3 4 |
# File 'lib/phoney/base.rb', line 2 def country_code @country_code end |
#number ⇒ Object
Returns the value of attribute number.
2 3 4 |
# File 'lib/phoney/base.rb', line 2 def number @number end |
#prefix_code ⇒ Object
Returns the value of attribute prefix_code.
2 3 4 |
# File 'lib/phoney/base.rb', line 2 def prefix_code @prefix_code end |
Class Method Details
.default_area_code ⇒ Object
25 26 27 |
# File 'lib/phoney/base.rb', line 25 def default_area_code @@area_code ||= nil end |
.default_area_code=(area_code) ⇒ Object
29 30 31 |
# File 'lib/phoney/base.rb', line 29 def default_area_code=(area_code) @@area_code = area_code end |
.default_country_code ⇒ Object
17 18 19 |
# File 'lib/phoney/base.rb', line 17 def default_country_code @@country_code ||= default_region.country_code.to_s end |
.default_country_code=(country_code) ⇒ Object
21 22 23 |
# File 'lib/phoney/base.rb', line 21 def default_country_code=(country_code) @@country_code = country_code end |
.default_region ⇒ Object
5 6 7 |
# File 'lib/phoney/base.rb', line 5 def default_region @@region ||= Region[:us] end |
Instance Method Details
#format(fmt) ⇒ Object
Formats the phone number. If the method argument is a String, it is used as a format string, with the following fields being interpolated:
-
%c - country_code (385)
-
%a - area_code (91)
-
%n - number (5125486)
If the method argument is a Symbol, we use one of the default formattings and let the parser do the rest.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/phoney/base.rb', line 75 def format(fmt) if fmt.is_a?(Symbol) case fmt when :default Parser::parse("+#{country_code} #{prefix_code}#{area_code} #{number}", country_code) when :national Parser::parse("#{area_code} #{number}", country_code) when :local STDERR.puts "Warning: Using local format without setting a default area code!?" if PhoneNumber.default_area_code.nil? Parser::parse(number, country_code) else raise "The format #{fmt} doesn't exist'" end else format_number(fmt) end end |
#has_default_area_code? ⇒ Boolean
Does this number belong to the default area code?
63 64 65 |
# File 'lib/phoney/base.rb', line 63 def has_default_area_code? (!area_code.to_s.empty? && area_code.to_s == self.class.default_area_code.to_s) end |
#has_default_country_code? ⇒ Boolean
Does this number belong to the default country code?
58 59 60 |
# File 'lib/phoney/base.rb', line 58 def has_default_country_code? country_code.to_s == self.class.default_country_code.to_s end |
#to_s ⇒ Object
The default format is the canonical format: “+#country_code #area_code #number”
94 95 96 |
# File 'lib/phoney/base.rb', line 94 def to_s format(:default) end |