anp_prices 1.0 → 1.01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/anp_prices.gemspec +2 -2
- data/lib/anp_prices.rb +17 -1
- data/spec/anp_prices_spec.rb +15 -1
- metadata +2 -2
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.01
|
data/anp_prices.gemspec
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
2
|
Gem::Specification.new do |s|
|
|
3
3
|
s.authors = ["Rogério Zambon"]
|
|
4
|
-
s.date = "2013-01-
|
|
4
|
+
s.date = "2013-01-12"
|
|
5
5
|
s.description = "Get fuel prices of the ANP - Agência Nacional do Petróleo, Gás Natural e Biocombustíveis"
|
|
6
6
|
s.email = "rogeriozambon@gmail.com"
|
|
7
7
|
s.add_dependency "rest-client", ">= 1.6.7"
|
|
@@ -18,5 +18,5 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.require_paths = ["lib"]
|
|
19
19
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.8.23")
|
|
20
20
|
s.summary = s.description
|
|
21
|
-
s.version = "1.
|
|
21
|
+
s.version = "1.01"
|
|
22
22
|
end
|
data/lib/anp_prices.rb
CHANGED
|
@@ -7,7 +7,7 @@ class ANP
|
|
|
7
7
|
def initialize(city = nil, fuel = nil)
|
|
8
8
|
raise ArgumentError if city.nil? or fuel.nil?
|
|
9
9
|
|
|
10
|
-
@city = city
|
|
10
|
+
@city = find_code_of(city)
|
|
11
11
|
@fuel = fuel
|
|
12
12
|
end
|
|
13
13
|
|
|
@@ -50,6 +50,22 @@ class ANP
|
|
|
50
50
|
Nokogiri::HTML(req.body).xpath "//div[@class='multi_box3']/table[@class='table_padrao scrollable_table']"
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
+
def request_city(name)
|
|
54
|
+
req = RestClient.post "http://www.anp.gov.br/preco/prc/Resumo_Ultimas_Coletas_Index.asp", :txtMunicipio => name
|
|
55
|
+
|
|
56
|
+
Nokogiri::HTML(req.body).xpath "//div[@id='divMunicipios']/select[@name='selMunicipio']/option"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def find_code_of(name)
|
|
60
|
+
request_city(name).each do |node|
|
|
61
|
+
node.each_with_index do |code, index|
|
|
62
|
+
next if index == 0
|
|
63
|
+
|
|
64
|
+
return code[1]
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
53
69
|
def push_values_with(lines)
|
|
54
70
|
entry = []
|
|
55
71
|
entries = []
|
data/spec/anp_prices_spec.rb
CHANGED
|
@@ -5,12 +5,26 @@ describe ANP do
|
|
|
5
5
|
expect { anp = ANP.new }.to raise_error(ArgumentError)
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
+
context "Find city code" do
|
|
9
|
+
before do
|
|
10
|
+
fixture = File.open("spec/fixture/city_sao_paulo.html").read
|
|
11
|
+
parser = Nokogiri::HTML(fixture).xpath "//div[@id='divMunicipios']/select[@name='selMunicipio']/option"
|
|
12
|
+
|
|
13
|
+
@anp = ANP.new "Sao Paulo", :gasolina
|
|
14
|
+
@anp.stub(:request_city).and_return(parser)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "check city code" do
|
|
18
|
+
@anp.city.should == "9668*SAO@PAULO"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
8
22
|
context "Informations" do
|
|
9
23
|
before do
|
|
10
24
|
fixture = File.open("spec/fixture/anp_sao_paulo.html").read
|
|
11
25
|
parser = Nokogiri::HTML(fixture).xpath("//div[@class='multi_box3']/table[@class='table_padrao scrollable_table']")
|
|
12
26
|
|
|
13
|
-
@anp = ANP.new "
|
|
27
|
+
@anp = ANP.new "Sao Paulo", :gasolina
|
|
14
28
|
@anp.stub(:request_page).and_return(parser)
|
|
15
29
|
end
|
|
16
30
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: anp_prices
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: '1.
|
|
4
|
+
version: '1.01'
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-01-
|
|
12
|
+
date: 2013-01-12 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rest-client
|