guia_mais 0.3.2 → 0.3.3

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/README CHANGED
@@ -7,7 +7,7 @@ Exemplo:
7
7
  require 'rubygems'
8
8
  require 'guia_mais'
9
9
 
10
- cliente = Cliente.buscar("32222222", :estado => :piaui)
10
+ cliente = GuiaMais::Cliente.buscar("32222222", :estado => :piaui)
11
11
  puts cliente.nome #=> RÁDIO TÁXI
12
12
  puts cliente.endereco #=> R Álvaro Ferreira, 60 Monte Castelo
13
13
  puts cliente.bairro #=> Monte Castelo
data/Rakefile CHANGED
@@ -3,13 +3,13 @@ require "rubygems"
3
3
  require "rake"
4
4
  require "echoe"
5
5
 
6
- Echoe.new("guia_mais", "0.3.2") do |p|
6
+ Echoe.new("guia_mais", "0.3.3") do |p|
7
7
  p.url = "https://github.com/dimiro1/guia_mais"
8
8
  p.description = "Busca dados no site Guia Mais através do telefone"
9
9
  p.author = "Claudemiro Alves Feitosa Neto"
10
10
  p.email = "dimiro1@gmail.com"
11
11
  p.ignore_pattern = ["tmp/*", "script/*"]
12
- p.development_dependencies = ["hpricot", "httparty", "htmlentities"]
12
+ p.dependencies = ["hpricot", "httparty", "htmlentities"]
13
13
  end
14
14
 
15
15
  Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
@@ -2,12 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "guia_mais"
5
- s.version = "0.3.2"
5
+ s.version = "0.3.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Claudemiro Alves Feitosa Neto"]
9
- s.date = "2011-11-01"
10
- s.description = "Busca dados no site Guia Mais atrav\303\251s do telefone"
9
+ s.date = "2012-05-15"
10
+ s.description = "Busca dados no site Guia Mais atrav\xC3\xA9s do telefone"
11
11
  s.email = "dimiro1@gmail.com"
12
12
  s.extra_rdoc_files = ["README", "lib/guia_mais.rb"]
13
13
  s.files = ["README", "Rakefile", "lib/guia_mais.rb", "test/guia_mais_test.rb", "Manifest", "guia_mais.gemspec"]
@@ -15,17 +15,17 @@ Gem::Specification.new do |s|
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Guia_mais", "--main", "README"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = "guia_mais"
18
- s.rubygems_version = "1.8.11"
19
- s.summary = "Busca dados no site Guia Mais atrav\303\251s do telefone"
18
+ s.rubygems_version = "1.8.23"
19
+ s.summary = "Busca dados no site Guia Mais atrav\xC3\xA9s do telefone"
20
20
  s.test_files = ["test/guia_mais_test.rb"]
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 3
24
24
 
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_development_dependency(%q<hpricot>, [">= 0"])
27
- s.add_development_dependency(%q<httparty>, [">= 0"])
28
- s.add_development_dependency(%q<htmlentities>, [">= 0"])
26
+ s.add_runtime_dependency(%q<hpricot>, [">= 0"])
27
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
28
+ s.add_runtime_dependency(%q<htmlentities>, [">= 0"])
29
29
  else
30
30
  s.add_dependency(%q<hpricot>, [">= 0"])
31
31
  s.add_dependency(%q<httparty>, [">= 0"])
@@ -40,33 +40,33 @@ module GuiaMais
40
40
  ]
41
41
 
42
42
  ESTADOS = {
43
- :acre => {:sigla => 'AC'},
44
- :alagoas => {:sigla => 'AL'},
45
- :amazonas => {:sigla => 'AM'},
46
- :amapa => {:sigla => 'AP'},
47
- :bahia => {:sigla => 'BA'},
48
- :ceara => {:sigla => 'CE'},
49
- :distrito_federal => {:sigla => 'DF'},
50
- :espirito_santo => {:sigla => 'ES'},
51
- :goias => {:sigla => 'GO'},
52
- :maranhao => {:sigla => 'MA'},
53
- :minas_gerais => {:sigla => 'MG'},
54
- :mato_grosso_do_sul => {:sigla => 'MS'},
55
- :mato_grosso => {:sigla => 'MT'},
56
- :para => {:sigla => 'PA'},
57
- :paraiba => {:sigla => 'PB'},
58
- :pernambuco => {:sigla => 'PE'},
59
- :piaui => {:sigla => 'PI'},
60
- :parana => {:sigla => 'PR'},
61
- :rio_de_janeiro => {:sigla => 'RJ'},
62
- :rio_grande_do_norte => {:sigla => 'RN'},
63
- :rondonia => {:sigla => 'RO'},
64
- :roraima => {:sigla => 'RR'},
65
- :rio_grande_do_sul => {:sigla => 'RS'},
66
- :santa_catarina => {:sigla => 'SC'},
67
- :sergipe => {:sigla => 'SE'},
68
- :sao_paulo => {:sigla => 'SP'},
69
- :tocantins => {:sigla => 'TO'}
43
+ :acre => {:sigla => 'ac'},
44
+ :alagoas => {:sigla => 'al'},
45
+ :amazonas => {:sigla => 'am'},
46
+ :amapa => {:sigla => 'ap'},
47
+ :bahia => {:sigla => 'ba'},
48
+ :ceara => {:sigla => 'ce'},
49
+ :distrito_federal => {:sigla => 'df'},
50
+ :espirito_santo => {:sigla => 'es'},
51
+ :goias => {:sigla => 'go'},
52
+ :maranhao => {:sigla => 'ma'},
53
+ :minas_gerais => {:sigla => 'mg'},
54
+ :mato_grosso_do_sul => {:sigla => 'ms'},
55
+ :mato_grosso => {:sigla => 'mt'},
56
+ :para => {:sigla => 'pa'},
57
+ :paraiba => {:sigla => 'pb'},
58
+ :pernambuco => {:sigla => 'pe'},
59
+ :piaui => {:sigla => 'pi'},
60
+ :parana => {:sigla => 'pr'},
61
+ :rio_de_janeiro => {:sigla => 'rj'},
62
+ :rio_grande_do_norte => {:sigla => 'rn'},
63
+ :rondonia => {:sigla => 'ro'},
64
+ :roraima => {:sigla => 'rr'},
65
+ :rio_grande_do_sul => {:sigla => 'rs'},
66
+ :santa_catarina => {:sigla => 'sc'},
67
+ :sergipe => {:sigla => 'se'},
68
+ :sao_paulo => {:sigla => 'sp'},
69
+ :tocantins => {:sigla => 'to'}
70
70
  }
71
71
 
72
72
  class Cliente
@@ -94,7 +94,7 @@ module GuiaMais
94
94
  @@oque = ""
95
95
 
96
96
  def self.buscar(oque, params = {})
97
- estado = ESTADOS[params[:estado]][:sigla] if params[:estado] || ""
97
+ estado = params[:estado].nil? ? "" : ESTADOS[params[:estado]][:sigla]
98
98
  resultado = get("/busca/#{CGI.escapeHTML(oque)}-#{estado}")
99
99
  @@pagina = Hpricot(resultado.body.to_utf8)
100
100
  @@oque = oque
@@ -107,31 +107,39 @@ module GuiaMais
107
107
  resultado = @@pagina.search(elemento).first
108
108
  resultado ? resultado.inner_html : nil
109
109
  end
110
+
111
+ def self.fix(str)
112
+ str = HTMLEntities.new.decode(str)
113
+ str = Iconv.conv("ISO-8859-1", "UTF-8", str)
114
+ str
115
+ end
110
116
 
111
117
  def self.minerar_dados
112
118
  nome, endereco, bairro, cep, categoria = nil
113
119
  begin
114
120
  timeout(10) do
115
- nome = buscar_elemento("html/body/div[1]/div/div/div[3]/div[1]/div[1]/div[3]/div[2]/h2/a")
116
- endereco = buscar_elemento("html/body/div[1]/div/div/div[3]/div[1]/div[1]/div[3]/div[2]/p[1]")
117
-
118
- unless endereco.nil?
119
- cep = endereco.slice(endereco.index("CEP:"), endereco.length)
120
- cep = cep.slice(5, cep.index("<br"))
121
- cep = cep.slice(0, 9)
122
-
123
- endereco = endereco.slice(0, endereco.index("<br />"))
124
-
125
- bairro = endereco.slice(endereco.index(" - "), endereco.length)
126
- endereco = endereco.slice(0, endereco.index(" - "))
127
- bairro = bairro.slice(3, bairro.length)
128
- end
129
- categoria = buscar_elemento("html/body/div[1]/div/div/div[3]/div[1]/div[1]/div[3]/div[2]/p[2]/b")
130
-
131
- nome = HTMLEntities.new.decode(nome)
132
- endereco = HTMLEntities.new.decode(endereco)
133
- bairro = HTMLEntities.new.decode(bairro)
134
- categoria = Iconv.conv("ISO-8859-1", "UTF-8", categoria)
121
+ nome = buscar_elemento(".fn.org a")
122
+ endereco = buscar_elemento(".adr .street-address")
123
+ bairro = buscar_elemento(".adr .district")
124
+ cep = buscar_elemento(".adr .postal-code")
125
+
126
+ # unless endereco.nil?
127
+ # cep = endereco.slice(endereco.index("CEP:"), endereco.length)
128
+ # cep = cep.slice(5, cep.index("<br"))
129
+ # cep = cep.slice(0, 9)
130
+
131
+ # endereco = endereco.slice(0, endereco.index("<br />"))
132
+
133
+ # bairro = endereco.slice(endereco.index(" - "), endereco.length)
134
+ # endereco = endereco.slice(0, endereco.index(" - "))
135
+ # bairro = bairro.slice(3, bairro.length)
136
+ # end
137
+ categoria = buscar_elemento(".categoria a")
138
+
139
+ nome = fix(nome)
140
+ endereco = fix(endereco)
141
+ bairro = fix(bairro)
142
+ categoria = fix(categoria)
135
143
  end
136
144
  rescue TimeoutError
137
145
  raise GuiaMaisException.new, 'GuiaMais fora do ar'
@@ -24,8 +24,8 @@ class GuiaMaisTest < Test::Unit::TestCase
24
24
 
25
25
  def test_se_funciona_com_32222222_AP
26
26
  cliente = GuiaMais::Cliente.buscar("32222222", :estado => :amapa)
27
- assert_equal "ELDORADO VEÍCULOS E PEÇAS LTDA", cliente.nome
28
- assert_equal "Rod BR-156 km 3", cliente.endereco
27
+ assert_equal "ELDORADO VEÍCULOS E PEÇAS", cliente.nome
28
+ assert_equal "Rod BR-156 km 3", cliente.endereco
29
29
  assert_equal "Jardim Felicidade", cliente.bairro
30
30
  assert_equal "68909-094", cliente.cep
31
31
  assert_equal "Automóveis - Concessionárias e Serviços Autorizados", cliente.categoria
@@ -43,9 +43,9 @@ class GuiaMaisTest < Test::Unit::TestCase
43
43
  def test_se_funciona_com_32321311_PI
44
44
  cliente = GuiaMais::Cliente.buscar("21071311", :estado => :piaui)
45
45
  assert_equal "ALEMANHA VEÍCULOS", cliente.nome
46
- assert_equal "Av João XXIII 3480 ", cliente.endereco
47
- assert_equal "Noivos", cliente.bairro
48
- assert_equal "64045-000", cliente.cep
46
+ assert_equal "Rod BR-343 3518 km 11", cliente.endereco
47
+ assert_equal "Parnaíba", cliente.bairro
48
+ assert_equal "64200-970", cliente.cep
49
49
  assert_equal "Automóveis - Agências e Revendedores", cliente.categoria
50
50
  end
51
51
 
metadata CHANGED
@@ -1,74 +1,72 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: guia_mais
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 2
10
- version: 0.3.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Claudemiro Alves Feitosa Neto
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-11-01 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-05-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ type: :runtime
21
16
  name: hpricot
22
17
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
24
23
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
32
- type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
24
+ requirement: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ none: false
30
+ - !ruby/object:Gem::Dependency
31
+ type: :runtime
35
32
  name: httparty
36
33
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
34
+ version_requirements: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ none: false
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
38
45
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
46
- type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
46
+ - !ruby/object:Gem::Dependency
47
+ type: :runtime
49
48
  name: htmlentities
50
49
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ none: false
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
52
61
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
60
- type: :development
61
- version_requirements: *id003
62
- description: "Busca dados no site Guia Mais atrav\xC3\xA9s do telefone"
62
+ description: Busca dados no site Guia Mais através do telefone
63
63
  email: dimiro1@gmail.com
64
64
  executables: []
65
-
66
65
  extensions: []
67
-
68
- extra_rdoc_files:
66
+ extra_rdoc_files:
69
67
  - README
70
68
  - lib/guia_mais.rb
71
- files:
69
+ files:
72
70
  - README
73
71
  - Rakefile
74
72
  - lib/guia_mais.rb
@@ -77,42 +75,33 @@ files:
77
75
  - guia_mais.gemspec
78
76
  homepage: https://github.com/dimiro1/guia_mais
79
77
  licenses: []
80
-
81
78
  post_install_message:
82
- rdoc_options:
79
+ rdoc_options:
83
80
  - --line-numbers
84
81
  - --inline-source
85
82
  - --title
86
83
  - Guia_mais
87
84
  - --main
88
85
  - README
89
- require_paths:
86
+ require_paths:
90
87
  - lib
91
- required_ruby_version: !ruby/object:Gem::Requirement
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
92
93
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
98
- - 0
99
- version: "0"
100
- required_rubygems_version: !ruby/object:Gem::Requirement
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '1.2'
101
99
  none: false
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- hash: 11
106
- segments:
107
- - 1
108
- - 2
109
- version: "1.2"
110
100
  requirements: []
111
-
112
101
  rubyforge_project: guia_mais
113
- rubygems_version: 1.8.11
102
+ rubygems_version: 1.8.23
114
103
  signing_key:
115
104
  specification_version: 3
116
- summary: "Busca dados no site Guia Mais atrav\xC3\xA9s do telefone"
117
- test_files:
105
+ summary: Busca dados no site Guia Mais através do telefone
106
+ test_files:
118
107
  - test/guia_mais_test.rb