class LeccaClient::CNAB::Loan::Parser
Public Class Methods
new(raw_file)
click to toggle source
# File lib/lecca_client/cnab/loan/parser.rb, line 6 def initialize(raw_file) @rows = raw_file.split("\n") end
Public Instance Methods
parse()
click to toggle source
# File lib/lecca_client/cnab/loan/parser.rb, line 10 def parse file = OpenStruct.new(header: nil, details: [], trailler: nil) @rows.each do |row| register_code = row.slice(0) case register_code when File::Header::REGISTER_CODE file.header = parse_header(row) when File::Detail::REGISTER_CODE file.details << parse_detail(row) when File::Trailler::REGISTER_CODE file.trailler = parse_trailler(row) end end file end
Private Instance Methods
parse_detail(row)
click to toggle source
# File lib/lecca_client/cnab/loan/parser.rb, line 42 def parse_detail(row) File::Detail.new( codigo_registro: row.slice(0).strip, numero_contrato_externo: row.slice(1, 12).strip, numero_contrato_lecca: row.slice(13, 12).strip, numero_cessa_lecca: row.slice(25, 5).strip, cpf_emitente: row.slice(30, 11).strip, numero_parcela: row.slice(41, 3).strip, data_vencimento_parcela: row.slice(44, 8).strip, valor_prestacao: row.slice(52, 7).strip, numero_sequencial_registro: row.slice(61, 6).strip ) end
parse_header(row)
click to toggle source
# File lib/lecca_client/cnab/loan/parser.rb, line 31 def parse_header(row) File::Header.new( codigo_registro: row.slice(0).strip, numero_remessa_arquivo: row.slice(1, 4).strip, data_geracao_arquivo: row.slice(5, 8).strip, codigo_cliente: row.slice(13, 20).strip, hora_geracao_arquivo: row.slice(33, 6).strip, numero_sequencial_registro: row.slice(61, 6).strip ) end
parse_trailler(row)
click to toggle source
# File lib/lecca_client/cnab/loan/parser.rb, line 56 def parse_trailler(row) File::Trailler.new( codigo_registro: row.slice(0).strip, quantidade_prestacoes: row.slice(1, 6).strip, valor_total_prestacoes: row.slice(7, 9).strip, numero_sequencial_registro: row.slice(61, 6).strip ) end