algorithmia 0.9.3 → 0.9.4
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 +4 -4
- data/lib/algorithmia/algorithm.rb +4 -4
- data/lib/algorithmia/requester.rb +24 -7
- data/lib/algorithmia/response.rb +34 -11
- data/lib/algorithmia/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 221b1eceac956d96b62ff29d39f7d3f922f17607
|
4
|
+
data.tar.gz: 9a95bdc4128ca4bfbbc72e2be46e6279cb807eed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ce500a43c125a943e498913dba6a5f99d2652c73d7a7db8f198759cf380475db0afd590f3a05b37369dd3f858c6df68e77e498bd51989c4a8e14e0830bdcea4
|
7
|
+
data.tar.gz: 2dc4531f7708d00e13806eb6102b91e81eff0404eace4e42824e0ae91ed877ad7d8669a4fb335be563eb8095ed651d4e611824ef40605929bc8da65b156852c9
|
@@ -12,15 +12,15 @@ module Algorithmia
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def set_options(options_hash)
|
15
|
-
@
|
15
|
+
@query.update(options_hash)
|
16
16
|
end
|
17
17
|
|
18
18
|
def set_timeout(timeout)
|
19
|
-
@
|
19
|
+
@query[:timeout] = timeout.to_i
|
20
20
|
end
|
21
21
|
|
22
22
|
def enable_stdout
|
23
|
-
@
|
23
|
+
@query[:stdout] = true
|
24
24
|
end
|
25
25
|
|
26
26
|
def pipe(input)
|
@@ -38,7 +38,7 @@ module Algorithmia
|
|
38
38
|
}
|
39
39
|
|
40
40
|
response = Algorithmia::Requester.new(@client).post(@endpoint, input, query: @query, headers: headers)
|
41
|
-
Algorithmia::Response.new(response.parsed_response)
|
41
|
+
Algorithmia::Response.new(response.parsed_response, @query[:output])
|
42
42
|
end
|
43
43
|
|
44
44
|
def pipe_json(input)
|
@@ -66,22 +66,39 @@ module Algorithmia
|
|
66
66
|
|
67
67
|
def check_for_errors(response)
|
68
68
|
if response.code >= 200 && response.code < 300
|
69
|
-
|
69
|
+
if response.is_a?(Hash) and response['error']
|
70
|
+
parse_error_message(response) if response['error']
|
71
|
+
end
|
70
72
|
return
|
71
73
|
end
|
72
74
|
|
73
75
|
|
74
76
|
case response.code
|
75
77
|
when 401
|
76
|
-
|
78
|
+
if response.nil?
|
79
|
+
raise Errors::UnauthorizedError.new("The request you are making requires authorization. Please check that you have permissions & that you've set your API key.", nil)
|
80
|
+
end
|
81
|
+
raise Errors::UnauthorizedError.new(response["error"]["message"], response)
|
77
82
|
when 400
|
83
|
+
if response.nil?
|
84
|
+
raise Errors::NotFoundError.new("The request was invalid", nil)
|
85
|
+
end
|
78
86
|
parse_error_message(response)
|
79
87
|
when 404
|
80
|
-
|
88
|
+
if response.nil?
|
89
|
+
raise Errors::NotFoundError.new("The URI requested is invalid or the resource requested does not exist.", nil)
|
90
|
+
end
|
91
|
+
raise Errors::NotFoundError.new(response["error"]["message"], response)
|
81
92
|
when 500
|
82
|
-
|
93
|
+
if response.nil?
|
94
|
+
raise Errors::InternalServerError.new("Whoops! Something is broken.", nil)
|
95
|
+
end
|
96
|
+
raise Errors::InternalServerError.new(response["error"]["message"], response)
|
83
97
|
else
|
84
|
-
|
98
|
+
if response.nil?
|
99
|
+
raise Errors::UnknownError.new("An unknown error occurred", nil)
|
100
|
+
end
|
101
|
+
raise Errors::UnknownError.new("message: #{response["error"]["message"]} stacktrace: #{error["stacktrace"]}", response)
|
85
102
|
end
|
86
103
|
end
|
87
104
|
|
@@ -95,9 +112,9 @@ module Algorithmia
|
|
95
112
|
raise Errors::JsonParseError.new("Unable to parse the input. Please make sure it matches the expected input of the algorithm and can be parsed into JSON.", response)
|
96
113
|
else
|
97
114
|
if error["stacktrace"].nil?
|
98
|
-
raise Errors::UnknownError.new(
|
115
|
+
raise Errors::UnknownError.new(error["message"], response)
|
99
116
|
else
|
100
|
-
raise Errors::UnknownError.new("
|
117
|
+
raise Errors::UnknownError.new("message: #{error["message"]} stacktrace: #{error["stacktrace"]}", response)
|
101
118
|
end
|
102
119
|
end
|
103
120
|
end
|
data/lib/algorithmia/response.rb
CHANGED
@@ -2,38 +2,61 @@ require "base64"
|
|
2
2
|
|
3
3
|
module Algorithmia
|
4
4
|
class Response
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :response
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@
|
7
|
+
def initialize(response, output_type)
|
8
|
+
@response = response
|
9
|
+
@output_type = output_type
|
9
10
|
end
|
10
11
|
|
11
12
|
def result
|
12
|
-
if
|
13
|
-
|
13
|
+
if @output_type == 'raw'
|
14
|
+
@response
|
15
|
+
elsif content_type == 'binary'
|
16
|
+
Base64.decode64(@response["result"])
|
14
17
|
else
|
15
|
-
@
|
18
|
+
@response["result"]
|
16
19
|
end
|
17
20
|
end
|
18
21
|
|
19
22
|
def metadata
|
20
|
-
@
|
23
|
+
if @output_type == 'raw'
|
24
|
+
nil
|
25
|
+
else
|
26
|
+
@response["metadata"]
|
27
|
+
end
|
21
28
|
end
|
22
29
|
|
23
30
|
def duration
|
24
|
-
|
31
|
+
if @output_type == 'raw'
|
32
|
+
nil
|
33
|
+
else
|
34
|
+
metadata["duration"]
|
35
|
+
end
|
25
36
|
end
|
26
37
|
|
27
38
|
def content_type
|
28
|
-
|
39
|
+
if @output_type == 'raw'
|
40
|
+
nil
|
41
|
+
else
|
42
|
+
metadata["content_type"]
|
43
|
+
end
|
29
44
|
end
|
30
45
|
|
31
46
|
def stdout
|
32
|
-
|
47
|
+
if @output_type == 'raw'
|
48
|
+
nil
|
49
|
+
else
|
50
|
+
metadata["stdout"]
|
51
|
+
end
|
33
52
|
end
|
34
53
|
|
35
54
|
def alerts
|
36
|
-
|
55
|
+
if @output_type == 'raw'
|
56
|
+
nil
|
57
|
+
else
|
58
|
+
metadata["alerts"]
|
59
|
+
end
|
37
60
|
end
|
38
61
|
end
|
39
62
|
end
|
data/lib/algorithmia/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: algorithmia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Algorithmia
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|