rogerleite-anvisa-bot 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/gempackagetask'
5
5
  require 'spec/rake/spectask'
6
6
 
7
7
  GEM = "anvisa-bot"
8
- GEM_VERSION = "0.2.2"
8
+ GEM_VERSION = "0.2.3"
9
9
  SUMMARY = "Pesquisa de produtos para saúde registrados"
10
10
  AUTHOR = "Roger Leite"
11
11
  EMAIL = "roger.barreto@gmail.com"
@@ -6,19 +6,26 @@ class AnvisaBot
6
6
  #veja o fluxo de "navegacao" do bot no arquivo fluxo_site_anvisa.txt
7
7
  def self.consulta_produto_por_registro(numero_registro)
8
8
  begin
9
- anvisa_browser = AnvisaBrowser.new
9
+ anvisa_browser = create_anvisa_browser
10
10
  plain_html = anvisa_browser.consulta_produto_por_registro(numero_registro)
11
11
 
12
12
  #puts "ZZZ ... ~10 segs"
13
- sleep( rand(10) ) #para não chamar atencao do server
13
+ #sleep( rand(10) ) #para não chamar atencao do server
14
14
 
15
15
  links = AnvisaParser.find_links_produtos(plain_html)
16
+ return Produto.new({:not_found => true}) if links.empty?
17
+
16
18
  plain_html = anvisa_browser.consulta_produto_detalhe(numero_registro, links.first)
17
19
  AnvisaParser.extract_produto(plain_html)
18
20
  rescue => ex
19
- AnvisaParser.extract_produto('', ex)
21
+ Produto.new({:error => ex})
20
22
  end
21
23
  end
22
24
 
25
+ #usado para injetar stubs ao rodar specs
26
+ def self.create_anvisa_browser
27
+ AnvisaBrowser.new
28
+ end
29
+
23
30
  end
24
31
 
@@ -17,12 +17,7 @@ class AnvisaParser
17
17
  links
18
18
  end
19
19
 
20
- def self.extract_produto(plain_html, exception = nil)
21
- if !!exception
22
- produto = Produto.new({})
23
- produto.error = exception
24
- return produto
25
- end
20
+ def self.extract_produto(plain_html)
26
21
 
27
22
  html = Hpricot(plain_html)
28
23
 
@@ -74,7 +69,7 @@ class Produto
74
69
  attr_accessor :empresa, :cnpj, :autorizacao,
75
70
  :nome, :modelo, :registro,
76
71
  :processo,:origem, :vencimento_registro,
77
- :error
72
+ :error, :not_found
78
73
 
79
74
  def initialize(args)
80
75
  raise ArgumentError("Args have to be a Hash with attributes") unless args.is_a?(Hash)
@@ -87,5 +82,9 @@ class Produto
87
82
  !!error
88
83
  end
89
84
 
85
+ def not_found?
86
+ !!not_found
87
+ end
88
+
90
89
  end
91
90
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rogerleite-anvisa-bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roger Leite
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-17 00:00:00 -07:00
12
+ date: 2009-08-19 00:00:00 -07:00
13
13
  default_executable: anvisa-bot
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency