klepto 0.5.7 → 0.5.8

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/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