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 +10 -2
- data/lib/klepto/config.rb +1 -18
- data/lib/klepto/version.rb +1 -1
- metadata +11 -11
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.
|
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
|
-
|
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
|
data/lib/klepto/version.rb
CHANGED
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.
|
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: &
|
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: *
|
24
|
+
version_requirements: *70282140348500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: capybara
|
27
|
-
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: *
|
35
|
+
version_requirements: *70282136786600
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: nokogiri
|
38
|
-
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: *
|
46
|
+
version_requirements: *70282136786140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activesupport
|
49
|
-
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: *
|
57
|
+
version_requirements: *70282136785760
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: multi_json
|
60
|
-
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: *
|
68
|
+
version_requirements: *70282136785220
|
69
69
|
description: Tearing up web pages into ActiveRecord resources
|
70
70
|
email:
|
71
71
|
- github@coryodaniel.com
|