Sha256: a6e5845811bc4cbd05a7e5d1f86bf2e84786fac415bf2d520a46096efea7d7b8

Contents?: true

Size: 964 Bytes

Versions: 4

Compression:

Stored size: 964 Bytes

Contents

module Torasup
  class PhoneNumber
    attr_reader :number, :country_code, :country_id, :area_code, :prefix, :local_number, :location, :operator

    def initialize(phone_number)
      parse_phone_number(phone_number)
    end

    private

    def parse_phone_number(number)
      raise "Not a vaild number" unless Phony.plausible?(number)
      @number = Phony.normalize(number)
      number_parts = split_number
      @country_code = number_parts.shift
      @country_id = Torasup.country_id(@country_code)
      area_code_or_prefix = number_parts.shift
      local_number = number_parts.join
      @location = Location.new(@country_id, area_code_or_prefix)
      @area_code = @location.area_code
      @operator = Operator.new(@country_code, area_code_or_prefix, local_number)
      @prefix = @operator.prefix
      @local_number = operator.local_number
    end

    def split_number
      Phony.split(@number).reject { |part| part == false }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
torasup-0.0.11 lib/torasup/phone_number.rb
torasup-0.0.10 lib/torasup/phone_number.rb
torasup-0.0.9 lib/torasup/phone_number.rb
torasup-0.0.8 lib/torasup/phone_number.rb