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 +1 -1
- data/Rakefile +2 -2
- data/guia_mais.gemspec +8 -8
- data/lib/guia_mais.rb +56 -48
- data/test/guia_mais_test.rb +5 -5
- metadata +63 -74
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.
|
|
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.
|
|
12
|
+
p.dependencies = ["hpricot", "httparty", "htmlentities"]
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
data/guia_mais.gemspec
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = "guia_mais"
|
|
5
|
-
s.version = "0.3.
|
|
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 = "
|
|
10
|
-
s.description = "Busca dados no site Guia Mais atrav\
|
|
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.
|
|
19
|
-
s.summary = "Busca dados no site Guia Mais atrav\
|
|
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.
|
|
27
|
-
s.
|
|
28
|
-
s.
|
|
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"])
|
data/lib/guia_mais.rb
CHANGED
|
@@ -40,33 +40,33 @@ module GuiaMais
|
|
|
40
40
|
]
|
|
41
41
|
|
|
42
42
|
ESTADOS = {
|
|
43
|
-
:acre => {:sigla => '
|
|
44
|
-
:alagoas => {:sigla => '
|
|
45
|
-
:amazonas => {:sigla => '
|
|
46
|
-
:amapa => {:sigla => '
|
|
47
|
-
:bahia => {:sigla => '
|
|
48
|
-
:ceara => {:sigla => '
|
|
49
|
-
:distrito_federal => {:sigla => '
|
|
50
|
-
:espirito_santo => {:sigla => '
|
|
51
|
-
:goias => {:sigla => '
|
|
52
|
-
:maranhao => {:sigla => '
|
|
53
|
-
:minas_gerais => {:sigla => '
|
|
54
|
-
:mato_grosso_do_sul => {:sigla => '
|
|
55
|
-
:mato_grosso => {:sigla => '
|
|
56
|
-
:para => {:sigla => '
|
|
57
|
-
:paraiba => {:sigla => '
|
|
58
|
-
:pernambuco => {:sigla => '
|
|
59
|
-
:piaui => {:sigla => '
|
|
60
|
-
:parana => {:sigla => '
|
|
61
|
-
:rio_de_janeiro => {:sigla => '
|
|
62
|
-
:rio_grande_do_norte => {:sigla => '
|
|
63
|
-
:rondonia => {:sigla => '
|
|
64
|
-
:roraima => {:sigla => '
|
|
65
|
-
:rio_grande_do_sul => {:sigla => '
|
|
66
|
-
:santa_catarina => {:sigla => '
|
|
67
|
-
:sergipe => {:sigla => '
|
|
68
|
-
:sao_paulo => {:sigla => '
|
|
69
|
-
:tocantins => {:sigla => '
|
|
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]
|
|
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("
|
|
116
|
-
endereco = buscar_elemento("
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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'
|
data/test/guia_mais_test.rb
CHANGED
|
@@ -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
|
|
28
|
-
assert_equal "Rod BR-156
|
|
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 "
|
|
47
|
-
assert_equal "
|
|
48
|
-
assert_equal "
|
|
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
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
19
|
+
requirements:
|
|
20
|
+
- - ! '>='
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '0'
|
|
24
23
|
none: false
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
type: :
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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.
|
|
102
|
+
rubygems_version: 1.8.23
|
|
114
103
|
signing_key:
|
|
115
104
|
specification_version: 3
|
|
116
|
-
summary:
|
|
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
|