require_relative 'pattern1' module BrDocuments module IE class TO < Pattern1 def initialize(number) super if number.gsub(/(\.)|(\-)/, '').length == 9 @mask = /^(\d{2}\.\d{6}\-\d{1})$|^(\d{9})$/ @weight = [9, 8, 7, 6, 5, 4, 3, 2] else @mask = /^(\d{2}\.\d{2}\.\d{6}\-\d{1})$|^(\d{11})$/ @weight = [9, 8, 0, 0, 7, 6, 5, 4, 3, 2] end end private def format_ie(number) if number.gsub(/(\.)|(\-)/, '').length == 9 number.sub(/(\d{2})(\d{6})(\d{1})/, '\\1.\\2-\\3') else number.sub(/(\d{2})(\d{2})(\d{6})(\d{1})/, '\\1.\\2.\\3-\\4') end end end end end