crabfarm 0.7.1 → 0.7.2

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