klepto 0.5.7 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
data/lib/klepto/bot.rb CHANGED
@@ -48,7 +48,9 @@ EOS
48
48
 
49
49
  # Dispatch all the handlers for HTTP Status Codes.
50
50
  @browser.statuses.each do |status|
51
- @config.dispatch_status_handlers(status, @browser)
51
+ (@config.status_handlers[status] || []).each do |sh|
52
+ sh.call(status, @browser)
53
+ end
52
54
  end
53
55
 
54
56
  # If the page was not a failure or if not aborting, structure that bad boy.
@@ -65,7 +67,13 @@ EOS
65
67
  @structure = __structure(@browser.page)
66
68
  end
67
69
  rescue Capybara::Poltergeist::TimeoutError => ex
68
- config.dispatch_timeout_handler(ex, @browser, @config.url)
70
+ if @config.has_timeout_handler?
71
+ @config.status_handlers[:timeout].each do |th|
72
+ th.call(ex, @browser, @config.url)
73
+ end
74
+ else
75
+ raise ex
76
+ end
69
77
  end
70
78
 
71
79
  @structure
data/lib/klepto/config.rb CHANGED
@@ -2,6 +2,7 @@ module Klepto
2
2
  class Config
3
3
  attr_reader :after_handlers
4
4
  attr_reader :before_handlers
5
+ attr_reader :status_handlers
5
6
 
6
7
  def initialize
7
8
  @headers = {}
@@ -60,16 +61,6 @@ module Klepto
60
61
  @status_handlers[:timeout].push block
61
62
  end
62
63
 
63
- def dispatch_timeout_handler(ex, url)
64
- if @status_handlers[:timeout]
65
- @status_handlers[:timeout].each do |handler|
66
- handler.call(ex, url)
67
- end
68
- else
69
- raise ex
70
- end
71
- end
72
-
73
64
  def on_http_status(*statuses,&block)
74
65
  statuses.each do |status|
75
66
  @status_handlers[status] ||= []
@@ -77,14 +68,6 @@ module Klepto
77
68
  end
78
69
  end
79
70
 
80
- def dispatch_status_handlers(status, page)
81
- if @status_handlers[status]
82
- @status_handlers[status].each do |handler|
83
- handler.call(page)
84
- end
85
- end
86
- end
87
-
88
71
  def after(which = :structure, &block)
89
72
  @after_handlers[which] ||= []
90
73
  @after_handlers[which].push block
@@ -1,3 +1,3 @@
1
1
  module Klepto
2
- VERSION = "0.5.7"
2
+ VERSION = "0.5.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: klepto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.5.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2013-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: poltergeist
16
- requirement: &70151609865620 !ruby/object:Gem::Requirement
16
+ requirement: &70282140348500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70151609865620
24
+ version_requirements: *70282140348500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: capybara
27
- requirement: &70151609865120 !ruby/object:Gem::Requirement
27
+ requirement: &70282136786600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.0.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70151609865120
35
+ version_requirements: *70282136786600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: nokogiri
38
- requirement: &70151609864660 !ruby/object:Gem::Requirement
38
+ requirement: &70282136786140 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.5.6
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70151609864660
46
+ version_requirements: *70282136786140
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &70151609864280 !ruby/object:Gem::Requirement
49
+ requirement: &70282136785760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70151609864280
57
+ version_requirements: *70282136785760
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: multi_json
60
- requirement: &70151609863740 !ruby/object:Gem::Requirement
60
+ requirement: &70282136785220 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '1.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70151609863740
68
+ version_requirements: *70282136785220
69
69
  description: Tearing up web pages into ActiveRecord resources
70
70
  email:
71
71
  - github@coryodaniel.com