kronk 1.2.3 → 1.2.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.
- data/History.rdoc +8 -0
- data/lib/kronk.rb +17 -6
- data/lib/kronk/request.rb +12 -0
- data/test/test_request.rb +4 -2
- metadata +4 -4
data/History.rdoc
CHANGED
data/lib/kronk.rb
CHANGED
@@ -11,7 +11,7 @@ require 'yaml'
|
|
11
11
|
class Kronk
|
12
12
|
|
13
13
|
# This gem's version.
|
14
|
-
VERSION = '1.2.
|
14
|
+
VERSION = '1.2.4'
|
15
15
|
|
16
16
|
|
17
17
|
##
|
@@ -85,15 +85,15 @@ class Kronk
|
|
85
85
|
# Default config to use.
|
86
86
|
DEFAULT_CONFIG = {
|
87
87
|
:content_types => DEFAULT_CONTENT_TYPES.dup,
|
88
|
-
:default_host => "http://localhost:3000",
|
89
|
-
:diff_format => :ascii_diff,
|
90
|
-
:show_lines => false,
|
91
88
|
:cache_file => DEFAULT_CACHE_FILE,
|
92
89
|
:cookies_file => DEFAULT_COOKIES_FILE,
|
90
|
+
:default_host => "http://localhost:3000",
|
91
|
+
:diff_format => :ascii_diff,
|
93
92
|
:history_file => DEFAULT_HISTORY_FILE,
|
94
|
-
:use_cookies => true,
|
95
93
|
:requires => [],
|
94
|
+
:show_lines => false,
|
96
95
|
:uri_options => {},
|
96
|
+
:use_cookies => true,
|
97
97
|
:user_agents => USER_AGENTS.dup
|
98
98
|
}
|
99
99
|
|
@@ -428,6 +428,11 @@ class Kronk
|
|
428
428
|
save_history
|
429
429
|
end
|
430
430
|
|
431
|
+
trap 'INT' do
|
432
|
+
exit 2
|
433
|
+
end
|
434
|
+
|
435
|
+
|
431
436
|
options[:cache_response] = config[:cache_file] if config[:cache_file]
|
432
437
|
|
433
438
|
uri1, uri2 = options.delete :uris
|
@@ -448,7 +453,7 @@ class Kronk
|
|
448
453
|
puts out
|
449
454
|
end
|
450
455
|
|
451
|
-
rescue Request::
|
456
|
+
rescue Request::Exception, Response::MissingParser => e
|
452
457
|
$stderr << "\nError: #{e.message}\n"
|
453
458
|
exit 2
|
454
459
|
end
|
@@ -671,6 +676,12 @@ Parse and run diffs against data from live and cached http responses.
|
|
671
676
|
end
|
672
677
|
|
673
678
|
|
679
|
+
opt.on('--timeout INT', Integer,
|
680
|
+
'Timeout for http connection in seconds') do |value|
|
681
|
+
config[:timeout] = value
|
682
|
+
end
|
683
|
+
|
684
|
+
|
674
685
|
opt.on('-U', '--proxy-user STR', String,
|
675
686
|
'Set proxy user and/or password: usr[:pass]') do |value|
|
676
687
|
options[:proxy][:username], options[:proxy][:password] =
|
data/lib/kronk/request.rb
CHANGED
@@ -5,10 +5,15 @@ class Kronk
|
|
5
5
|
|
6
6
|
class Request
|
7
7
|
|
8
|
+
# Generic Request exception.
|
9
|
+
class Exception < ::Exception; end
|
8
10
|
|
9
11
|
# Raised when the URI was not resolvable.
|
10
12
|
class NotFoundError < Exception; end
|
11
13
|
|
14
|
+
# Raised when HTTP times out.
|
15
|
+
class TimeoutError < Exception; end
|
16
|
+
|
12
17
|
##
|
13
18
|
# Follows the redirect from a 30X response object and decrease the
|
14
19
|
# number of redirects left if it's an Integer.
|
@@ -66,8 +71,12 @@ class Kronk
|
|
66
71
|
end
|
67
72
|
|
68
73
|
resp
|
74
|
+
|
69
75
|
rescue SocketError, Errno::ENOENT, Errno::ECONNREFUSED
|
70
76
|
raise NotFoundError, "#{uri} could not be found"
|
77
|
+
|
78
|
+
rescue Timeout::Error
|
79
|
+
raise TimeoutError, "#{uri} took too long to respond"
|
71
80
|
end
|
72
81
|
|
73
82
|
|
@@ -197,6 +206,9 @@ class Kronk
|
|
197
206
|
req = http_class.new uri.host, uri.port
|
198
207
|
req.use_ssl = true if uri.scheme =~ /^https$/
|
199
208
|
|
209
|
+
options[:timeout] ||= Kronk.config[:timeout]
|
210
|
+
req.read_timeout = options[:timeout] if options[:timeout]
|
211
|
+
|
200
212
|
resp = req.start do |http|
|
201
213
|
socket = http.instance_variable_get "@socket"
|
202
214
|
socket.debug_output = socket_io = StringIO.new
|
data/test/test_request.rb
CHANGED
@@ -116,7 +116,8 @@ class TestRequest < Test::Unit::TestCase
|
|
116
116
|
|
117
117
|
Kronk::Request.expects(:follow_redirect).
|
118
118
|
with resp, :follow_redirects => true,
|
119
|
-
:headers => {'User-Agent' => Kronk::USER_AGENTS['kronk']}
|
119
|
+
:headers => {'User-Agent' => Kronk::USER_AGENTS['kronk']},
|
120
|
+
:timeout => nil
|
120
121
|
|
121
122
|
Kronk::Request.retrieve_uri "http://example.com/request/path?foo=bar",
|
122
123
|
:follow_redirects => true
|
@@ -129,7 +130,8 @@ class TestRequest < Test::Unit::TestCase
|
|
129
130
|
|
130
131
|
Kronk::Request.expects(:follow_redirect).
|
131
132
|
with resp, :follow_redirects => 3, :data => {:foo => "bar"},
|
132
|
-
:headers => {'User-Agent' => Kronk::USER_AGENTS['kronk']}
|
133
|
+
:headers => {'User-Agent' => Kronk::USER_AGENTS['kronk']},
|
134
|
+
:timeout => nil
|
133
135
|
|
134
136
|
Kronk::Request.retrieve_uri "http://example.com/request/path?foo=bar",
|
135
137
|
:follow_redirects => 3, :data => {:foo => "bar"}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kronk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 4
|
10
|
+
version: 1.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jeremie Castagna
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-03-04 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|