lib/eost/folhacalculo.rb in eost-0.1.5 vs lib/eost/folhacalculo.rb in eost-0.1.6

- old
+ new

@@ -1,83 +1,76 @@ # frozen_string_literal: true module Eost HT = %w[block_num block_time contract action from to amount symbol memo data].freeze - R1 = '%<v3>-12.12s %<v4>s %<v5>-12.12s %<v6>-12.12s' - R2 = '%<v7>10.5f %<v8>-10.10s' + R1 = '%<v3>-12.12s %<v4>-8.8s %<v5>-12.12s %<v6>-12.12s' + R2 = '%<v7>10.5f %<v8>-8.8s' - # folhas calculo comuns no bigquery + # trabalhar com folhas calculo bloks.io & dados no bigquery class Bigquery - # @return [String] linha folha calculo formatada - def row_str - "#{row[0]} #{DateTime.parse(row[1]).strftime(DF)} " + row_r1 + row_r2 - end - - # @return [String] linha folha calculo formatada - def row_r1 - format(R1, v3: row[2], v4: row[3], v5: row[4], v6: row[5]) - end - - # @return [String] linha folha calculo formatada - def row_r2 - format(R2, v7: row[6], v8: row[7]) - end - # processa linhas folha calculo def processa n = 0 - # usada somente a primeira sheet - book.sheet(0).parse(header_search: HT) do |r| + folha.sheet(0).parse(header_search: HT) do |r| n += 1 - puts n == 1 ? "\n" + book.info : processa_row(r) + puts n == 1 ? "\n" + folha.info : processa_row(r) end end - # mostra linhas folha calculo - def show - n = 0 - # usada somente a primeira sheet - book.sheet(0).parse(header_search: HT) do |r| - n += 1 - puts n == 1 ? "\n" + book.info : show_row(r) - end - end - # processa linha folha calculo para arquivo # - # @param (see show_row) - # @return [String] linha folha calculo processada + # @param [Hash] has da linha em processamento + # @return [String] texto informativo do processamento def processa_row(has) @row = has.values sql_select - if rnaoexiste? then row_str + (sql_insert == 1 ? ' NOVA' : ' ERRO') - elsif rexiste? then row_existente + if row_naoexiste? then row_str + (sql_insert == 1 ? ' NOVA' : ' ERRO') + elsif row_existe? then row_existente + else row_multiplas end end - # obtem linha folha calculo para apresentacao - # - # @param [Hash] has da linha em processamento - # @return (see row_str) - def show_row(has) - @row = has.values - row_str + # @return [String] linha folha calculo formatada + def row_str + "#{row[0]} #{DateTime.parse(row[1]).strftime(DF)} " + row_r1 + row_r2 end + # @return [String] linha folha calculo formatada + def row_r1 + format(R1, v3: row[2], v4: row[3], v5: row[4], v6: row[5]) + end + + # @return [String] linha folha calculo formatada + def row_r2 + format(R2, v7: row[6].to_f, v8: row[7]) + end + # @return [String] linha folha calculo existente def row_existente - d = apaga ? sql_delete : 0 - row_str + " EXISTENTE#{d.zero? ? '' : ' APAGADA'}" + d = linha[:e] ? sql_delete : 0 + row_str + ' EXISTENTE' + str_apagadas(d) end + # @return [String] linha folha calculo existencia multipla + def row_multiplas + d = linha[:m] ? sql_delete : 0 + row_str + ' MULTIPLAS ' + sql.count.to_s + str_apagadas(d) + end + + # @param [Integer] numero linhas apagadas + # @return [String] texto formatado linhas apagadas + def str_apagadas(num) + num.positive? ? ' & ' + num.to_s + ' APAGADA(S) ' : ' ' + end + # @return [Boolean] linha folha calculo nao existe no bigquery? - def rnaoexiste? + def row_naoexiste? sql.count.zero? end # @return [Boolean] linha folha calculo existe no bigquery? - def rexiste? + def row_existe? sql.count == 1 end end end