Class: MoteSMS::Number

Inherits:
Object
  • Object
show all
Defined in:
lib/mote_sms/number.rb

Overview

MoteSMS::Number handles all the number parsing and formatting issues, also a number is immutable.

Constant Summary collapse

PhonyError =

Support both Phony 1.7 and 2.x

begin
  Phony::NormalizationError
rescue
  Class.new(ArgumentError)
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, options = {}) ⇒ Number

Returns a new instance of Number.



18
19
20
21
22
# File 'lib/mote_sms/number.rb', line 18

def initialize(value, options = {})
  @options = options || {}
  @raw_number = value.to_s
  parse_raw_number
end

Instance Attribute Details

#numberObject (readonly) Also known as: to_number

Access the E164 normalized value of the number.



15
16
17
# File 'lib/mote_sms/number.rb', line 15

def number
  @number
end

Instance Method Details

#to_sObject

Public: Prints formatted number, i.e. the human readable variant.

Returns formatted number.



35
36
37
# File 'lib/mote_sms/number.rb', line 35

def to_s
  @formatted_number ||= vanity? ? number : Phony.formatted(number)
end

#vanity?Boolean

Public: Returns true if this could represent a vanity number.

Returns Boolean, true if this is a vanity number, else false.

Returns:

  • (Boolean)


27
28
29
# File 'lib/mote_sms/number.rb', line 27

def vanity?
  !!@options[:vanity]
end