bovespa 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +4 -4
- data/bovespa.gemspec +2 -2
- data/lib/bovespa/cotacao.rb +5 -5
- data/lib/bovespa/historico.rb +30 -29
- data/tests/historico_spec.rb +17 -14
- metadata +22 -23
data/README.rdoc
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
== BOVESPA
|
2
2
|
É uma biblioteca ruby para lidar com a bolsa de valores Bovespa. Ela está dividade em duas classes:
|
3
|
-
* Cotacao - Para obter a cotação de papéis pelo serviço gratuito da bolsa de valores (com
|
3
|
+
* Cotacao - Para obter a cotação de papéis pelo serviço gratuito da bolsa de valores (com delay de 15 min)
|
4
4
|
* Historico - Para ler os arquivos de posição da Série Histórica da Bovespa.
|
5
5
|
|
6
6
|
Ainda não testado no Ruby 1.9
|
7
7
|
|
8
8
|
=== Bovespa::Cotacao
|
9
|
-
Para usar, faça uma classe que herde de Bovespa::Cotacao. Ao instanciar
|
9
|
+
Para usar, faça uma classe que herde de Bovespa::Cotacao. Ao instanciar um objeto, ele automaticamente ganhará os atributos correspondentes ao papel. Veja o exemplo de uso.
|
10
10
|
|
11
11
|
class MinhaClasse < Bovespa::Cotacao
|
12
12
|
end
|
@@ -35,7 +35,7 @@ http://marcofnogueira.wordpress.com/2010/12/01/cotacoes-das-acoes-na-bolsa-de-va
|
|
35
35
|
|
36
36
|
===Bovespa::Historico
|
37
37
|
|
38
|
-
Para ler os arquivos de posição da Série Histórica, faça sua classe herdar de Bovespa::Historico, e acesse os valores de cada papel, como no exemplo. Cada arquivo representa um dia com informações
|
38
|
+
Para ler os arquivos de posição da Série Histórica, faça sua classe herdar de Bovespa::Historico, e acesse os valores de cada papel, como no exemplo. Cada arquivo representa um dia com informações sobre todos os papéis.
|
39
39
|
|
40
40
|
class OutraClasse < Bovespa::Historico
|
41
41
|
end
|
@@ -46,7 +46,7 @@ Para ler os arquivos de posição da Série Histórica, faça sua classe herdar
|
|
46
46
|
dia.petr4["codneg"]
|
47
47
|
dia.petr4["preabre"]
|
48
48
|
|
49
|
-
Para um lista com
|
49
|
+
Para um lista com todos as opções de informação disponivel, consulte o código:
|
50
50
|
https://github.com/marcofognog/bovespa/blob/master/lib/bovespa/historico.rb
|
51
51
|
|
52
52
|
E não deixe de ler o leiaute dos arquivos:
|
data/bovespa.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'bovespa'
|
3
|
-
s.version = '0.5.
|
3
|
+
s.version = '0.5.6'
|
4
4
|
s.summary = 'Biblioteca Ruby para ler arquivos da Série Histórica da Bovespa e obter cotção direto na Bovespa.'
|
5
5
|
s.description = 'Biblioteca Ruby para ler arquivos da Série Histórica da Bovespa e obter cotção direto na Bovespa usando o serviço gratuito.'
|
6
6
|
s.files = `git ls-files`.split("\n")
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.authors = ["Marco Antonio Fogaça Nogueira"]
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.7")
|
11
11
|
s.add_dependency('nokogiri', '>= 1.4.4')
|
12
|
-
s.add_dependency('posifile', '>=0.2.
|
12
|
+
s.add_dependency('posifile', '>=0.2.5')
|
13
13
|
s.email = ["marcofognog@gmail.com"]
|
14
14
|
s.require_paths = ["lib"]
|
15
15
|
end
|
data/lib/bovespa/cotacao.rb
CHANGED
@@ -6,26 +6,25 @@ module Bovespa
|
|
6
6
|
attr_accessor :raw_attributes
|
7
7
|
|
8
8
|
def initialize(nome_do_ativo)
|
9
|
-
uri = URI.parse("http://www.bmfbovespa.com.br/cotacoes2000/formCotacoesMobile.asp?codsocemi="+nome_do_ativo)
|
9
|
+
uri = URI.parse("http://www.bmfbovespa.com.br/cotacoes2000/formCotacoesMobile.asp?codsocemi=" + nome_do_ativo)
|
10
10
|
res = Net::HTTP.start(uri.host, uri.port) do |http|
|
11
|
-
http.get("/cotacoes2000/formCotacoesMobile.asp?codsocemi="+nome_do_ativo)
|
11
|
+
http.get("/cotacoes2000/formCotacoesMobile.asp?codsocemi=" + nome_do_ativo)
|
12
12
|
end
|
13
13
|
xml = Nokogiri::XML(res.body)
|
14
14
|
raw_attr = {}
|
15
15
|
xml.css("PAPEL").each do |node|
|
16
|
-
|
16
|
+
@raw_attributes = node
|
17
17
|
end
|
18
18
|
create_attributes
|
19
19
|
end
|
20
20
|
|
21
21
|
def create_attributes
|
22
|
-
attr_list = ["codigo", "delay", "data", "hora", "oscilacao", "valor_ultimo", "quant_neg", "mercado","descricao"]
|
22
|
+
attr_list = ["codigo", "delay", "data", "hora", "oscilacao", "valor_ultimo", "quant_neg", "mercado", "descricao"]
|
23
23
|
attr_list.each do |method_name|
|
24
24
|
self.instance_eval("def #{method_name}; @raw_attributes['#{method_name.upcase}']; end")
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
# more attributes
|
29
28
|
def ultimo_valor
|
30
29
|
valor_ultimo
|
31
30
|
end
|
@@ -37,5 +36,6 @@ module Bovespa
|
|
37
36
|
return false
|
38
37
|
end
|
39
38
|
end
|
39
|
+
|
40
40
|
end
|
41
41
|
end
|
data/lib/bovespa/historico.rb
CHANGED
@@ -2,46 +2,47 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'posifile'
|
5
|
+
|
5
6
|
module Bovespa
|
6
|
-
class Historico< Posifile
|
7
|
+
class Historico < Posifile
|
7
8
|
|
8
|
-
lines_where(0..1,"00") do # header
|
9
|
-
set_specification("nome_do_arquivo"=>2..14,"codigo_de_origem"=>15..22,"data_de_geracao_do_arquivo"=>23..30)
|
9
|
+
lines_where(0..1, "00") do # header
|
10
|
+
set_specification("nome_do_arquivo" => 2..14, "codigo_de_origem" => 15..22, "data_de_geracao_do_arquivo" => 23..30)
|
10
11
|
end
|
11
12
|
|
12
13
|
lines_where(0..1,"01") do # Atriutos dos ativos
|
13
14
|
set_specification( "codneg" => 12..23,
|
14
|
-
"data_do_pregao"=>2..9,
|
15
|
+
"data_do_pregao" => 2..9,
|
15
16
|
"coddbi" => 10..11,
|
16
|
-
"tpmerc"=>24..26,
|
17
|
-
"nomres"=>27..38,
|
18
|
-
"especi"=>39..48,
|
19
|
-
"prazot"=>49..51,
|
20
|
-
"modref"=>52..55,
|
21
|
-
"preabre"=>56..68,
|
22
|
-
"premax"=>69..81,
|
23
|
-
"premin"=>82..94,
|
24
|
-
"premed"=>95..107,
|
25
|
-
"preult"=>108..120,
|
26
|
-
"preofc"=>121..133,
|
27
|
-
"preofv"=>134..146,
|
28
|
-
"totneg"=>147..151,
|
29
|
-
"quatot"=>152..169,
|
30
|
-
"voltot"=>170..187,
|
31
|
-
"preexe"=>188..200,
|
32
|
-
"indopc"=>201..201,
|
33
|
-
"datven"=>202..209, # AAAAMMDD
|
34
|
-
"fatcot"=>210..216,
|
35
|
-
"ptoexe"=>217..229,
|
36
|
-
"codisi"=>230..241,
|
37
|
-
"dismes"=>242..244
|
17
|
+
"tpmerc" => 24..26,
|
18
|
+
"nomres" => 27..38,
|
19
|
+
"especi" => 39..48,
|
20
|
+
"prazot" => 49..51,
|
21
|
+
"modref" => 52..55,
|
22
|
+
"preabre" => 56..68,
|
23
|
+
"premax" => 69..81,
|
24
|
+
"premin" => 82..94,
|
25
|
+
"premed" => 95..107,
|
26
|
+
"preult" => 108..120,
|
27
|
+
"preofc" => 121..133,
|
28
|
+
"preofv" => 134..146,
|
29
|
+
"totneg" => 147..151,
|
30
|
+
"quatot" => 152..169,
|
31
|
+
"voltot" => 170..187,
|
32
|
+
"preexe" => 188..200,
|
33
|
+
"indopc" => 201..201,
|
34
|
+
"datven" => 202..209, # AAAAMMDD
|
35
|
+
"fatcot" => 210..216,
|
36
|
+
"ptoexe" => 217..229,
|
37
|
+
"codisi" => 230..241,
|
38
|
+
"dismes" => 242..244
|
38
39
|
)
|
39
40
|
set_attr_name :codneg
|
40
41
|
end
|
41
42
|
|
42
|
-
lines_where(0..1,"99") do # trailer
|
43
|
-
set_specification("nome_do_arquivo_trailer"=>2..14,"codigo_de_origem_trailer"=>15..22,
|
44
|
-
"data_de_geracao_do_arquivo_trailer"=>23..30,"total_de_registros"=>31..42)
|
43
|
+
lines_where(0..1, "99") do # trailer
|
44
|
+
set_specification("nome_do_arquivo_trailer" => 2..14, "codigo_de_origem_trailer" => 15..22,
|
45
|
+
"data_de_geracao_do_arquivo_trailer" => 23..30, "total_de_registros" => 31..42)
|
45
46
|
end
|
46
47
|
|
47
48
|
end
|
data/tests/historico_spec.rb
CHANGED
@@ -5,22 +5,25 @@ class MyClass < Bovespa::Historico
|
|
5
5
|
end
|
6
6
|
|
7
7
|
describe MyClass do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
historico.data_de_geracao_do_arquivo.should eq("20040531")
|
13
|
-
end
|
8
|
+
context "given a position file" do
|
9
|
+
before do
|
10
|
+
@historico = MyClass.new("DemoCotacoesHistoricas12022003.txt")
|
11
|
+
end
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
it "should give information about the header" do
|
14
|
+
@historico.nome_do_arquivo.should eq("COTAHIST.2003")
|
15
|
+
@historico.codigo_de_origem.should eq("BOVESPA")
|
16
|
+
@historico.data_de_geracao_do_arquivo.should eq("20040531")
|
17
|
+
end
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
it "should get the code of the asset" do
|
20
|
+
@historico.vale5["codneg"].should eq("VALE5")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return a list of every asset turned into attribute" do
|
24
|
+
@historico.pos_attributes.length.should be > 478
|
25
|
+
end
|
26
|
+
end
|
24
27
|
|
25
28
|
it "should have valid specified fields" do
|
26
29
|
MyClass.valid_specification?.should be true
|
metadata
CHANGED
@@ -1,40 +1,39 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bovespa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 0.5.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Marco Antonio Fogaça Nogueira
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-26 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
|
17
|
-
none: false
|
16
|
+
version_requirements: &2056 !ruby/object:Gem::Requirement
|
18
17
|
requirements:
|
19
18
|
- - ! '>='
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: 1.4.4
|
22
|
-
|
21
|
+
none: false
|
22
|
+
requirement: *2056
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
type: :runtime
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: posifile
|
27
|
-
|
28
|
-
none: false
|
27
|
+
version_requirements: &2074 !ruby/object:Gem::Requirement
|
29
28
|
requirements:
|
30
29
|
- - ! '>='
|
31
30
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.2.
|
33
|
-
|
31
|
+
version: 0.2.5
|
32
|
+
none: false
|
33
|
+
requirement: *2074
|
34
34
|
prerelease: false
|
35
|
-
|
36
|
-
description: Biblioteca Ruby para ler arquivos da Série Histórica da Bovespa e obter
|
37
|
-
cotção direto na Bovespa usando o serviço gratuito.
|
35
|
+
type: :runtime
|
36
|
+
description: Biblioteca Ruby para ler arquivos da Série Histórica da Bovespa e obter cotção direto na Bovespa usando o serviço gratuito.
|
38
37
|
email:
|
39
38
|
- marcofognog@gmail.com
|
40
39
|
executables: []
|
@@ -53,27 +52,27 @@ files:
|
|
53
52
|
- tests/historico_spec.rb
|
54
53
|
homepage: http://github.com/marcofognog/bovespa
|
55
54
|
licenses: []
|
56
|
-
post_install_message:
|
55
|
+
post_install_message:
|
57
56
|
rdoc_options: []
|
58
57
|
require_paths:
|
59
58
|
- lib
|
60
59
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
60
|
requirements:
|
63
61
|
- - ! '>='
|
64
62
|
- !ruby/object:Gem::Version
|
65
63
|
version: '0'
|
66
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
64
|
none: false
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
66
|
requirements:
|
69
67
|
- - ! '>='
|
70
68
|
- !ruby/object:Gem::Version
|
71
69
|
version: 1.3.7
|
70
|
+
none: false
|
72
71
|
requirements: []
|
73
|
-
rubyforge_project:
|
74
|
-
rubygems_version: 1.8.
|
75
|
-
signing_key:
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 1.8.15
|
74
|
+
signing_key:
|
76
75
|
specification_version: 3
|
77
|
-
summary: Biblioteca Ruby para ler arquivos da Série Histórica da Bovespa e obter cotção
|
78
|
-
direto na Bovespa.
|
76
|
+
summary: Biblioteca Ruby para ler arquivos da Série Histórica da Bovespa e obter cotção direto na Bovespa.
|
79
77
|
test_files: []
|
78
|
+
...
|