guia_mais 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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