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
         
     |