Class: HistoricoAtivos::ParserAtivo

Inherits:
Object
  • Object
show all
Defined in:
lib/historico_ativos/parser_ativo.rb

Instance Method Summary collapse

Instance Method Details

#converts_to_big_decimal(preco) ⇒ Object



108
109
110
111
112
# File 'lib/historico_ativos/parser_ativo.rb', line 108

def converts_to_big_decimal(preco)
  preco_s = preco.to_s
  preco_s.insert(preco_s.size - 2, '.')
  BigDecimal.new(preco_s)
end

#parse(row) ⇒ Object



6
7
8
# File 'lib/historico_ativos/parser_ativo.rb', line 6

def parse(row)
  read_ativo(row) if row.start_with?("01")
end

#read_ativo(row) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/historico_ativos/parser_ativo.rb', line 10

def read_ativo(row)
  ativo = Ativo.new
  ativo.data = read_data row
  ativo.codigo_bdi = read_codigo_bdi row
  ativo.codigo = read_codigo row
  ativo.tipo_mercado = read_tipo_mercado row
  ativo.nome = read_nome row
  ativo.especificacao = read_especificacao row
  ativo.prazo_termo = read_prazo_termo row
  ativo.moeda_referencia = read_moeda_referencia row
  ativo.preco_abertura = read_preco_abertura row
  ativo.preco_maximo = read_preco_maximo row
  ativo.preco_minimo = read_preco_minimo row
  ativo.preco_medio = read_preco_medio row
  ativo.preco_ultimo = read_preco_ultimo row
  ativo.preco_melhor_oferta_compra = read_preco_melhor_oferta_compra row
  ativo.preco_melhor_oferta_venda = read_preco_melhor_oferta_venda row
  ativo.total_negocios = read_total_negocios row
  ativo.quantidade_titulos_negociados= read_quantidade_titulos_negociados row
  ativo.volume_negocios = read_volume_negocios row
  ativo
end

#read_codigo(row) ⇒ Object



44
45
46
# File 'lib/historico_ativos/parser_ativo.rb', line 44

def read_codigo(row)
  row[12..23].strip
end

#read_codigo_bdi(row) ⇒ Object



40
41
42
# File 'lib/historico_ativos/parser_ativo.rb', line 40

def read_codigo_bdi(row)
  row[10..11].to_i
end

#read_data(row) ⇒ Object



33
34
35
36
37
38
# File 'lib/historico_ativos/parser_ativo.rb', line 33

def read_data(row)
  year = row[2..5]
  month = row[6..7]
  day = row[8..9]
  Date.new(year.to_i, month.to_i, day.to_i)
end

#read_especificacao(row) ⇒ Object



56
57
58
# File 'lib/historico_ativos/parser_ativo.rb', line 56

def read_especificacao(row)
  row[39..48].strip
end

#read_moeda_referencia(row) ⇒ Object



64
65
66
# File 'lib/historico_ativos/parser_ativo.rb', line 64

def read_moeda_referencia(row)
  row[52..55].strip
end

#read_nome(row) ⇒ Object



52
53
54
# File 'lib/historico_ativos/parser_ativo.rb', line 52

def read_nome(row)
  row[27..38].strip
end

#read_prazo_termo(row) ⇒ Object



60
61
62
# File 'lib/historico_ativos/parser_ativo.rb', line 60

def read_prazo_termo(row)
  row[49..51].to_i
end

#read_preco_abertura(row) ⇒ Object



68
69
70
# File 'lib/historico_ativos/parser_ativo.rb', line 68

def read_preco_abertura(row)
  converts_to_big_decimal row[56..68].to_i
end

#read_preco_maximo(row) ⇒ Object



72
73
74
# File 'lib/historico_ativos/parser_ativo.rb', line 72

def read_preco_maximo(row)
  converts_to_big_decimal row[69..81].to_i
end

#read_preco_medio(row) ⇒ Object



80
81
82
# File 'lib/historico_ativos/parser_ativo.rb', line 80

def read_preco_medio(row)
  converts_to_big_decimal row[95..107].to_i
end

#read_preco_melhor_oferta_compra(row) ⇒ Object



88
89
90
# File 'lib/historico_ativos/parser_ativo.rb', line 88

def read_preco_melhor_oferta_compra(row)
  converts_to_big_decimal row[121..133].to_i
end

#read_preco_melhor_oferta_venda(row) ⇒ Object



92
93
94
# File 'lib/historico_ativos/parser_ativo.rb', line 92

def read_preco_melhor_oferta_venda(row)
  converts_to_big_decimal row[134..146].to_i
end

#read_preco_minimo(row) ⇒ Object



76
77
78
# File 'lib/historico_ativos/parser_ativo.rb', line 76

def read_preco_minimo(row)
  converts_to_big_decimal row[82..94].to_i
end

#read_preco_ultimo(row) ⇒ Object



84
85
86
# File 'lib/historico_ativos/parser_ativo.rb', line 84

def read_preco_ultimo(row)
  converts_to_big_decimal row[108..120].to_i
end

#read_quantidade_titulos_negociados(row) ⇒ Object



100
101
102
# File 'lib/historico_ativos/parser_ativo.rb', line 100

def read_quantidade_titulos_negociados(row)
  BigDecimal.new(row[152..169])
end

#read_tipo_mercado(row) ⇒ Object



48
49
50
# File 'lib/historico_ativos/parser_ativo.rb', line 48

def read_tipo_mercado(row)
  row[24..26].to_i
end

#read_total_negocios(row) ⇒ Object



96
97
98
# File 'lib/historico_ativos/parser_ativo.rb', line 96

def read_total_negocios(row)
  row[147..151].to_i
end

#read_volume_negocios(row) ⇒ Object



104
105
106
# File 'lib/historico_ativos/parser_ativo.rb', line 104

def read_volume_negocios(row)
  BigDecimal.new(row[170..187])
end