Class: Msisdn

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

Constant Summary collapse

INTERNATIONAL_COUNTRY_CODE =
/^\+(1|2[1-689]\d|2[07]|3[0-469]|3[578]\d|4[0-13-9]|42\d|5[09]\d|5[1-8]|6[0-6]|6[7-9]\d|7|8[035789]\d|8[1246]|9[0-58]|9[679]\d)(\d+)/
INTERNATIONAL_COUNTRY_CODE_NO_PREFIX =
/(1|2[1-689]\d|2[07]|3[0-469]|3[578]\d|4[0-13-9]|42\d|5[09]\d|5[1-8]|6[0-6]|6[7-9]\d|7|8[035789]\d|8[1246]|9[0-58]|9[679]\d)(\d+)/
EXACTLY_10_DIGITS =
/^(\d{10})$/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(msisdn, default_country_code = nil) ⇒ Msisdn

Returns a new instance of Msisdn.



15
16
17
18
19
20
21
22
23
# File 'lib/msisdn.rb', line 15

def initialize(msisdn, default_country_code = nil)
  msisdn.gsub!( /[\s()\-a-zA-Z]/, '')
  @default_country_code = default_country_code

  @original = @msisdn = msisdn
  unless match_local(msisdn)
    match_international
  end
end

Instance Attribute Details

#country_codeObject

Returns the value of attribute country_code.



9
10
11
# File 'lib/msisdn.rb', line 9

def country_code
  @country_code
end

#dialing_codeObject

Returns the value of attribute dialing_code.



9
10
11
# File 'lib/msisdn.rb', line 9

def dialing_code
  @dialing_code
end

#msisdnObject

Returns the value of attribute msisdn.



9
10
11
# File 'lib/msisdn.rb', line 9

def msisdn
  @msisdn
end

#national_numberObject

Returns the value of attribute national_number.



9
10
11
# File 'lib/msisdn.rb', line 9

def national_number
  @national_number
end

#networkObject

Returns the value of attribute network.



9
10
11
# File 'lib/msisdn.rb', line 9

def network
  @network
end

#originalObject

Returns the value of attribute original.



9
10
11
# File 'lib/msisdn.rb', line 9

def original
  @original
end

Instance Method Details

#internationalObject



25
26
27
28
# File 'lib/msisdn.rb', line 25

def international
  return nil if @country_code.nil?
  "#{@country_code}#{@network}#{@subscriber}"
end