Parent

Typhoeus::RemoteProxyObject

Public Class Methods

new(clear_memoized_store_proc, easy, options = {}) click to toggle source
    # File lib/typhoeus/remote_proxy_object.rb, line 5
 5:     def initialize(clear_memoized_store_proc, easy, options = {})
 6:       @clear_memoized_store_proc = clear_memoized_store_proc
 7:       @easy      = easy
 8:       @success   = options[:on_success]
 9:       @failure   = options[:on_failure]
10:       @cache     = options.delete(:cache)
11:       @cache_key = options.delete(:cache_key)
12:       @timeout   = options.delete(:cache_timeout)
13:       Typhoeus.add_easy_request(@easy)
14:     end

Public Instance Methods

method_missing(sym, *args, &block) click to toggle source
    # File lib/typhoeus/remote_proxy_object.rb, line 16
16:     def method_missing(sym, *args, &block)
17:       unless @proxied_object
18:         if @cache && @cache_key
19:           @proxied_object = @cache.get(@cache_key) rescue nil
20:         end
21: 
22:         unless @proxied_object
23:           Typhoeus.perform_easy_requests
24:           response = Response.new(:code => @easy.response_code,
25:                                   :headers => @easy.response_header,
26:                                   :body => @easy.response_body,
27:                                   :time => @easy.total_time_taken,
28:                                   :requested_url => @easy.url,
29:                                   :requested_http_method => @easy.method,
30:                                   :start_time => @easy.start_time)
31:           if @easy.response_code >= 200 && @easy.response_code < 300
32:             Typhoeus.release_easy_object(@easy)
33:             @proxied_object = @success.nil? ? response : @success.call(response)
34: 
35:             if @cache && @cache_key
36:               @cache.set(@cache_key, @proxied_object, @timeout)
37:             end
38:           else
39:             @proxied_object = @failure.nil? ? response : @failure.call(response)
40:           end
41:          @clear_memoized_store_proc.call
42:        end
43:       end
44: 
45:       @proxied_object.__send__(sym, *args, &block)
46:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.