crabfarm 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c550699098370495349bb242274fee302050ec25
4
- data.tar.gz: e422e85f42e800ed20c692e2d68e985962de9ae4
3
+ metadata.gz: 2cd329fb207d26d0ce84b7d9a245c9555032f72d
4
+ data.tar.gz: a50a7c709070a8d1a1ff1528c28c03502b75ae9b
5
5
  SHA512:
6
- metadata.gz: 72c0cfe98b46fec0d071b0d03ccec46307fc2698862aa11a11ed25d0bcd2b65c99502ab14c202b0d4da0c47757353ca4ff824262e36f0d57f84ce37177cb09ac
7
- data.tar.gz: d519fa4e7b65275ffac76922654a10199f4e222a35a3789960e1d2baf1cc084260c10f966b7a3b3081aeea1b3e4a82f7aff66af71a19fae5a3a17a1e91df39ea
6
+ metadata.gz: 97697da5b22796d930e8db64269ad94e6205c729637f623bcd3d64331f7936200807b73873c93d5bbddc5c9c5b066dc5df85c8a191a0b4f82fa64c2cbb3ef19c
7
+ data.tar.gz: c9418e6a5ad1d64871bb88763c5980da97fc6a6d0ce91d99ec69ffed994c35d950240a52448c9be9b6ef4876980a4b65ea5bd9db9b24d2c12a5de780fda45e27
@@ -23,37 +23,19 @@ module Crabfarm
23
23
 
24
24
  class ResourceNotFoundError < Crabfarm::Error; end
25
25
 
26
- class ApiError < Error
27
- def code; 500 end
28
- def to_json; {} end
29
- end
30
-
31
- class StillWorkingError < ApiError
32
- def code; 409 end
33
- end
26
+ class StillWorkingError < Error; end
34
27
 
35
- class TimeoutError < ApiError
36
- def code; 408 end
37
- end
28
+ class TimeoutError < Error; end
38
29
 
39
- class CrawlerBaseError < ApiError
40
- def initialize(_msg, _trace)
41
- @exc = _msg
42
- @trace = _trace
43
- end
30
+ class CrawlerError < Error
44
31
 
45
- def to_json
46
- {
47
- exception: @exc,
48
- backtrace: @trace
49
- }.to_json
50
- end
51
- end
32
+ attr_reader :original
52
33
 
53
- class CrawlerError < CrawlerBaseError
54
34
  def initialize(_exc)
55
- super _exc.to_s, _exc.backtrace
35
+ super
36
+ @original = _exc
56
37
  end
38
+
57
39
  end
58
40
 
59
41
  class LiveInterrupted < StandardError; end
@@ -17,8 +17,25 @@ module Crabfarm
17
17
  rack_response({ errors: e }.to_json, 400)
18
18
  end
19
19
 
20
- rescue_from Crabfarm::ApiError do |e|
21
- rack_response(e.to_json, e.code)
20
+ rescue_from Crabfarm::TimeoutError do |e|
21
+ rack_response('{}', 408)
22
+ end
23
+
24
+ rescue_from Crabfarm::StillWorkingError do |e|
25
+ rack_response('{}', 409)
26
+ end
27
+
28
+ rescue_from Crabfarm::CrawlerError do |e|
29
+ message = "#{e.original.message} (#{e.original.class.to_s})"
30
+ backtrace = e.original.backtrace.take_while { |t| !t.include? '/lib/crabfarm/' }
31
+ backtrace = e.original.backtrace if backtrace.count == 0
32
+
33
+ body = {
34
+ exception: message,
35
+ backtrace: backtrace
36
+ }
37
+
38
+ rack_response(body.to_json, 500)
22
39
  end
23
40
 
24
41
  helpers do
@@ -1,3 +1,3 @@
1
1
  module Crabfarm
2
- VERSION = "0.7.1"
2
+ VERSION = "0.7.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crabfarm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ignacio Baixas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-25 00:00:00.000000000 Z
11
+ date: 2015-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport