zephyr 1.1.1 → 1.1.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.
- data/VERSION +1 -1
- data/lib/zephyr/failed_request.rb +38 -0
- data/lib/zephyr.rb +8 -17
- data/zephyr.gemspec +3 -2
- metadata +14 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.2
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class Zephyr
|
2
|
+
# Raised when a request fails due to either a timeout or when the expected
|
3
|
+
# response code does not match the actual response code.
|
4
|
+
class FailedRequest < StandardError
|
5
|
+
attr_reader :method, :uri, :expected_code, :timeout, :response
|
6
|
+
|
7
|
+
# The following options are required:
|
8
|
+
#
|
9
|
+
# method - The HTTP method used for the request.
|
10
|
+
# uri - The uri of the request.
|
11
|
+
# expected_code - The expected response code for the request.
|
12
|
+
# timeout - The timeout (in milliseconds) for the request.
|
13
|
+
# response - The response.
|
14
|
+
def initialize(options)
|
15
|
+
@method = options[:method].to_s.upcase
|
16
|
+
@uri = options[:uri]
|
17
|
+
@expected_code = options[:expected_code]
|
18
|
+
@timeout = options[:timeout]
|
19
|
+
@response = options[:response]
|
20
|
+
|
21
|
+
super "#{@method} #{@uri} - #{error_message}"
|
22
|
+
end
|
23
|
+
|
24
|
+
# Returns whether the request timed out.
|
25
|
+
def timed_out?
|
26
|
+
@response.timed_out? || @response.code == 0
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def error_message
|
31
|
+
if timed_out?
|
32
|
+
"Response exceeded #{@timeout}ms."
|
33
|
+
else
|
34
|
+
"Expected #{@expected_code} from the server but received #{@response.code}."
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/zephyr.rb
CHANGED
@@ -43,6 +43,8 @@ end
|
|
43
43
|
|
44
44
|
# A simple front-end for doing HTTP requests quickly and simply.
|
45
45
|
class Zephyr
|
46
|
+
autoload :FailedRequest, "zephyr/failed_request"
|
47
|
+
|
46
48
|
def initialize(root_uri = '')
|
47
49
|
@root_uri = URI.parse(root_uri.to_s).freeze
|
48
50
|
end
|
@@ -300,9 +302,12 @@ class Zephyr
|
|
300
302
|
end
|
301
303
|
result
|
302
304
|
else
|
303
|
-
|
304
|
-
|
305
|
-
|
305
|
+
failed_request = FailedRequest.new(:method => method,
|
306
|
+
:uri => uri(path_components),
|
307
|
+
:expected_code => expect,
|
308
|
+
:timeout => timeout,
|
309
|
+
:response => response)
|
310
|
+
Zephyr.logger.error "[zephyr:#{$$}:#{Time.now.to_f}]: #{failed_request}"
|
306
311
|
raise failed_request
|
307
312
|
end
|
308
313
|
end
|
@@ -356,17 +361,3 @@ class Headers
|
|
356
361
|
add_field(key, value) if key && value
|
357
362
|
end
|
358
363
|
end
|
359
|
-
|
360
|
-
class FailedRequest < StandardError
|
361
|
-
attr_reader :method
|
362
|
-
attr_reader :expected
|
363
|
-
attr_reader :code
|
364
|
-
attr_reader :headers
|
365
|
-
attr_reader :body
|
366
|
-
attr_reader :timed_out
|
367
|
-
|
368
|
-
def initialize(method, expected_code, received_code, headers, body, timed_out)
|
369
|
-
@method, @expected, @code, @headers, @body, @timed_out = method, expected_code, received_code, headers, body, timed_out
|
370
|
-
super "Expected #{@expected.inspect} from the server but received #{@code}. #{@body}"
|
371
|
-
end
|
372
|
-
end
|
data/zephyr.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "zephyr"
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Matt Knopp"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-03-16"
|
13
13
|
s.description = "Simple HTTP client using Typheous, derived from the Riak client"
|
14
14
|
s.email = "matt.knopp@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
"Rakefile",
|
26
26
|
"VERSION",
|
27
27
|
"lib/zephyr.rb",
|
28
|
+
"lib/zephyr/failed_request.rb",
|
28
29
|
"test/helper.rb",
|
29
30
|
"test/test_zephyr.rb",
|
30
31
|
"zephyr.gemspec"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zephyr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typhoeus
|
16
|
-
requirement: &
|
16
|
+
requirement: &70159647046820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.2.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70159647046820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: yajl-ruby
|
27
|
-
requirement: &
|
27
|
+
requirement: &70159647045860 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70159647045860
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70159646995840 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70159646995840
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70159646993360 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.4
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70159646993360
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: shoulda
|
60
|
-
requirement: &
|
60
|
+
requirement: &70159646992740 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 2.11.3
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70159646992740
|
69
69
|
description: Simple HTTP client using Typheous, derived from the Riak client
|
70
70
|
email: matt.knopp@gmail.com
|
71
71
|
executables: []
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- Rakefile
|
83
83
|
- VERSION
|
84
84
|
- lib/zephyr.rb
|
85
|
+
- lib/zephyr/failed_request.rb
|
85
86
|
- test/helper.rb
|
86
87
|
- test/test_zephyr.rb
|
87
88
|
- zephyr.gemspec
|
@@ -100,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
101
|
version: '0'
|
101
102
|
segments:
|
102
103
|
- 0
|
103
|
-
hash:
|
104
|
+
hash: 2863491660694697364
|
104
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
106
|
none: false
|
106
107
|
requirements:
|