Class: Cex::TheRock
- Inherits:
-
Object
- Object
- Cex::TheRock
- Defined in:
- lib/cex/therock.rb
Overview
classe para processar saldos & transacoes ledger
Instance Attribute Summary collapse
-
#api ⇒ Apius
readonly
API therock.
-
#dbq ⇒ Array<Hash>
readonly
Todos os dados bigquery.
-
#ops ⇒ Thor::CoreExt::HashWithIndifferentAccess
readonly
Opcoes trabalho.
Instance Method Summary collapse
-
#exd ⇒ Hash
Dados exchange therock - saldos & transacoes ledger.
-
#formata_ledger(hlx) ⇒ String
Texto formatado transacao ledger.
-
#formata_saldos(hsl) ⇒ String
Texto formatado saldos (therock/bigquery) & iguais/ok/nok?.
-
#initialize(dad, pop) ⇒ TheRock
constructor
API therock - obter saldos & transacoes ledger.
-
#kyl ⇒ Array<String>
Lista txid de transacoes ledger.
-
#ledger ⇒ Hash
Transacoes ledger.
-
#mostra_ledger ⇒ String
Texto transacoes ledger.
-
#mostra_resumo ⇒ String
Texto saldos & transacoes & ajuste dias.
Constructor Details
Instance Attribute Details
#api ⇒ Apius (readonly)
Returns API therock.
10 11 12 |
# File 'lib/cex/therock.rb', line 10 def api @api end |
#dbq ⇒ Array<Hash> (readonly)
Returns todos os dados bigquery.
12 13 14 |
# File 'lib/cex/therock.rb', line 12 def dbq @dbq end |
#ops ⇒ Thor::CoreExt::HashWithIndifferentAccess (readonly)
Returns opcoes trabalho.
14 15 16 |
# File 'lib/cex/therock.rb', line 14 def ops @ops end |
Instance Method Details
#exd ⇒ Hash
Returns dados exchange therock - saldos & transacoes ledger.
30 31 32 33 34 35 |
# File 'lib/cex/therock.rb', line 30 def exd @exd ||= { sl: api.account, kl: api.ledger } end |
#formata_ledger(hlx) ⇒ String
Returns texto formatado transacao ledger.
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/cex/therock.rb', line 65 def formata_ledger(hlx) format( '%<ky>6i %<dt>19.19s %<ty>-27.27s %<mo>-4.4s %<vl>20.7f', ky: hlx[:id], dt: Time.parse(hlx[:date]), ty: hlx[:type], mo: hlx[:currency].upcase, vl: hlx[:price].to_d ) end |
#formata_saldos(hsl) ⇒ String
Returns texto formatado saldos (therock/bigquery) & iguais/ok/nok?.
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/cex/therock.rb', line 50 def formata_saldos(hsl) b = dbq[:sl][hsl[:currency].downcase.to_sym].to_d k = hsl[:balance].to_d format( '%<mo>-5.5s %<kr>21.9f %<bq>21.9f %<ok>3.3s', mo: hsl[:currency].upcase, kr: k, bq: b, ok: k == b ? 'OK' : 'NOK' ) end |
#kyl ⇒ Array<String>
Returns lista txid de transacoes ledger.
38 39 40 |
# File 'lib/cex/therock.rb', line 38 def kyl @kyl ||= exd[:kl].map { |h| h[:id] } - (ops[:t] ? [] : dbq[:nl].map { |e| e[:txid] }) end |
#ledger ⇒ Hash
Returns transacoes ledger.
43 44 45 |
# File 'lib/cex/therock.rb', line 43 def ledger @ledger ||= exd[:kl].select { |o| kyl.include?(o[:id]) } end |
#mostra_ledger ⇒ String
Returns texto transacoes ledger.
88 89 90 91 92 93 |
# File 'lib/cex/therock.rb', line 88 def mostra_ledger return unless ops[:v] && ledger.count.positive? puts("\nledger data hora tipo moeda ---------quantidade") ledger.sort { |a, b| b[:id] <=> a[:id] }.each { |o| puts(formata_ledger(o)) } end |
#mostra_resumo ⇒ String
Returns texto saldos & transacoes & ajuste dias.
77 78 79 80 81 82 83 84 85 |
# File 'lib/cex/therock.rb', line 77 def mostra_resumo puts("\nTHEROCK\nmoeda saldo therock saldo bigquery") exd[:sl].each { |h| puts(formata_saldos(h)) } mostra_ledger return unless ledger.count.positive? puts("\nstring ajuste dias da ledger\n-h=#{kyl.map { |e| "#{e}:0" }.join(' ')}") end |