Module: NorwegianPhone

Defined in:
lib/norwegian_phone.rb,
lib/norwegian_phone/version.rb

Constant Summary collapse

VERSION =
"0.0.10"

Class Method Summary collapse

Class Method Details

.international?(number) ⇒ Boolean

Norway-centric. True if not a norwegian number.

Returns:

  • (Boolean)


38
39
40
# File 'lib/norwegian_phone.rb', line 38

def international?(number)
  !!(normalize(number) =~ /^\+/)
end

.msisdnize(number) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/norwegian_phone.rb', line 14

def msisdnize(number)
  return nil if missing?(number)

  number = normalize(number)
  number = "47#{number}" unless number =~ /^\+/
    number.gsub!(/^\+/, '')
  number
end

.normalize(number) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/norwegian_phone.rb', line 4

def normalize(number)
  number ||= ""
  number = number.gsub(/[.\- \t\r\n\(\)]/, '')
  number.gsub!(/^(\+)(.*)/) { |m| $1 + $2.gsub(/\+/, '') }
  number.gsub!(/^00/, '+')
  number.gsub!(/^\+47/, '')
  number.gsub!(/^\+*0+/, '+')
  number
end

.number_valid?(number) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
34
35
# File 'lib/norwegian_phone.rb', line 27

def number_valid?(number)
  return false if number.nil?
  return false if number == ""
  case number.strip
  when /\A\+?[0-9[:space:]]+\z/
    return true
  end
  false
end

.unmsisdnize(number) ⇒ Object



23
24
25
# File 'lib/norwegian_phone.rb', line 23

def unmsisdnize(number)
  normalize("+#{number}") if number
end