wrest 1.5.3 → 1.5.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/CHANGELOG +3 -0
- data/README.md +22 -11
- data/lib/wrest/async_request.rb +2 -2
- data/lib/wrest/async_request/thread_pool.rb +8 -6
- data/lib/wrest/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: c2ef12f85a25ae1566e9dc1b687a364d765f6a08
|
4
|
+
data.tar.gz: fb83d920f115473b271d16cad06195fb73524d00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a88c38044cafcad5a161e4fd974b8023600c830865f1734451a5e948720d647b828f73caeca7b89ef008b6f8c472c44e2a05cc8b4602458939280427dd7121ab
|
7
|
+
data.tar.gz: baff6d4f993a61763836866bd838b0517c802aaa1547593aeb07b92c5a599defa77a70db5616e2e3bdacec48b343c4c78f1513990e4bb1727d537d69f5a17688
|
data/CHANGELOG
CHANGED
@@ -2,6 +2,9 @@ Features under the section marked 'Current' are completed but pending release as
|
|
2
2
|
|
3
3
|
Features under a numbered section are complete and available in the Wrest gem.
|
4
4
|
|
5
|
+
== 1.5.4
|
6
|
+
* Make thread pool configurable
|
7
|
+
|
5
8
|
== 1.5.3
|
6
9
|
* Implemented a thread pool for async requests using ThreadBackend
|
7
10
|
* Updated request/response logging to include current thread id
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
[](https://travis-ci.org/c42/wrest)
|
2
2
|
|
3
|
-
# Wrest 1.5.
|
3
|
+
# Wrest 1.5.4
|
4
4
|
|
5
5
|
(c) Copyright 2009-2015 [Sidu Ponnappa](http://twitter.com/ponnappa). All Rights Reserved.
|
6
6
|
|
@@ -9,10 +9,7 @@ Wrest is a ruby REST/HTTP client library which
|
|
9
9
|
* Allows you to use Net::HTTP or libCurl
|
10
10
|
* Allows you to pick your Ruby: use 2.x.x, JRuby 1.7.6 (and higher), JRuby 9.0.0.0.pre2
|
11
11
|
* Supports RFC 2616 based [caching](https://github.com/kaiwren/wrest/blob/caching/Caching.markdown)
|
12
|
-
*
|
13
|
-
|
14
|
-
Allows you to go async: use Threads or EventMachine
|
15
|
-
|
12
|
+
* Async http calls using Threads (reliable only on JRuby) or EventMachine
|
16
13
|
* Allows you to quickly build object oriented wrappers around any web service
|
17
14
|
* Is designed to be used as a library, not just a command line REST client (fewer class/static methods, more object oriented)
|
18
15
|
* Is spec driven, strongly favours immutable objects and avoids class methods and setters making it better suited for use as a library, especially in multi-threaded environments
|
@@ -31,15 +28,16 @@ For Facebook, Twitter, Delicious, GitHub and other API examples, see http://gith
|
|
31
28
|
* Basic API calls
|
32
29
|
|
33
30
|
```
|
34
|
-
|
35
|
-
|
36
|
-
|
31
|
+
# Works with json and xml out of the box
|
32
|
+
# See lib/wrest/components/translators to add other formats
|
33
|
+
|
34
|
+
'https://api.github.com/repos/c42/wrest/issues'.to_uri.get.deserialize
|
37
35
|
```
|
38
36
|
|
39
37
|
* Timeout support
|
40
38
|
|
41
39
|
```
|
42
|
-
'
|
40
|
+
'https://api.github.com/repos/c42/wrest/issues'.to_uri.get(:timeout => 5).body
|
43
41
|
```
|
44
42
|
|
45
43
|
* Redirect support
|
@@ -217,11 +215,15 @@ Asynchronous requests support pluggable backends. The default backend used for a
|
|
217
215
|
Wrest::AsyncRequest.wait_for_thread_pool!
|
218
216
|
```
|
219
217
|
|
220
|
-
You can change the default to eventmachine.
|
218
|
+
You can change the default to eventmachine or to threads.
|
221
219
|
|
222
220
|
```
|
223
221
|
Wrest::AsyncRequest.default_to_em!
|
224
222
|
```
|
223
|
+
or
|
224
|
+
```
|
225
|
+
Wrest::AsyncRequest.default_to_threads!
|
226
|
+
```
|
225
227
|
|
226
228
|
You can also override the default on Uri objects.
|
227
229
|
|
@@ -233,7 +235,16 @@ You can also override the default on Uri objects.
|
|
233
235
|
end
|
234
236
|
```
|
235
237
|
|
236
|
-
|
238
|
+
You can decide which AsyncBackend to use at runtime through to `to_uri`'s options hash.
|
239
|
+
|
240
|
+
```
|
241
|
+
"http://c42.in".to_uri(asynchronous_backend: ThreadBackend.new(number_of_threads)).get_async do |callback|
|
242
|
+
callback.on_ok do |response|
|
243
|
+
Wrest.logger.info "Ok."
|
244
|
+
end
|
245
|
+
end
|
246
|
+
```
|
247
|
+
|
237
248
|
|
238
249
|
### Other useful stuff
|
239
250
|
|
data/lib/wrest/async_request.rb
CHANGED
@@ -27,8 +27,8 @@ module Wrest
|
|
27
27
|
end
|
28
28
|
|
29
29
|
# Assign default backend for asynchronous request to using threads.
|
30
|
-
def self.default_to_threads!
|
31
|
-
self.default_backend = Wrest::AsyncRequest::ThreadBackend.new
|
30
|
+
def self.default_to_threads!(number_of_threads = 5)
|
31
|
+
self.default_backend = Wrest::AsyncRequest::ThreadBackend.new(number_of_threads)
|
32
32
|
end
|
33
33
|
|
34
34
|
# Returns the default backend, which is the ThreadBackend
|
@@ -14,12 +14,10 @@ module Wrest
|
|
14
14
|
@threads = []
|
15
15
|
@number_of_threads = number_of_threads
|
16
16
|
@queue = Queue.new
|
17
|
-
halt_on_sigint
|
18
|
-
halt_on_int
|
19
|
-
initialize_thread_pool
|
20
17
|
end
|
21
18
|
|
22
19
|
def execute_eventually(request)
|
20
|
+
initialize_thread_pool if @threads.empty?
|
23
21
|
@queue.push(request)
|
24
22
|
nil
|
25
23
|
end
|
@@ -32,6 +30,8 @@ module Wrest
|
|
32
30
|
|
33
31
|
private
|
34
32
|
def initialize_thread_pool
|
33
|
+
halt_on_sigint
|
34
|
+
halt_on_int
|
35
35
|
main_thread = Thread.current
|
36
36
|
@threads = @number_of_threads.times.map do |i|
|
37
37
|
Thread.new do |thread|
|
@@ -55,9 +55,11 @@ module Wrest
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def halt
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
unless @threads.empty?
|
59
|
+
Wrest.logger.debug "Wrest: Shutting down ThreadPool..."
|
60
|
+
@threads.each(&:terminate)
|
61
|
+
Wrest.logger.debug "Wrest: Halted ThreadPool, continuing with shutdown."
|
62
|
+
end
|
61
63
|
Process.exit
|
62
64
|
end
|
63
65
|
end
|
data/lib/wrest/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wrest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sidu Ponnappa
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-08-
|
12
|
+
date: 2015-08-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|