Parent

Typhoeus::RemoteMethod

Attributes

http_method[RW]
options[RW]
base_uri[RW]
path[RW]
on_success[RW]
on_failure[RW]
cache_ttl[RW]

Public Class Methods

new(options = {}) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 5
 5:     def initialize(options = {})
 6:       @http_method       = options.delete(:method) || :get
 7:       @options           = options
 8:       @base_uri          = options.delete(:base_uri)
 9:       @path              = options.delete(:path)
10:       @on_success        = options[:on_success]
11:       @on_failure        = options[:on_failure]
12:       @cache_responses   = options.delete(:cache_responses)
13:       @memoize_responses = options.delete(:memoize_responses) || @cache_responses
14:       @cache_ttl         = @cache_responses == true ? 0 : @cache_responses
15:       @keys              = nil
16:       
17:       clear_cache
18:     end

Public Instance Methods

add_response_block(block, args, options) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 40
40:     def add_response_block(block, args, options)
41:       @response_blocks[args_options_key(args, options)] << block
42:     end
already_called?(args, options) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 36
36:     def already_called?(args, options)
37:       @called_methods.has_key? args_options_key(args, options)
38:     end
args_options_key(args, options) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 28
28:     def args_options_key(args, options)
29:       "#{args.to_s}+#{options.to_s}"
30:     end
argument_names() click to toggle source
    # File lib/typhoeus/remote_method.rb, line 75
75:     def argument_names
76:       return @keys if @keys
77:       pattern, keys = compile(@path)
78:       @keys = keys.collect {|k| k.to_sym}
79:     end
cache_responses?() click to toggle source
    # File lib/typhoeus/remote_method.rb, line 20
20:     def cache_responses?
21:       @cache_responses
22:     end
call_response_blocks(result, args, options) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 44
44:     def call_response_blocks(result, args, options)
45:       key = args_options_key(args, options)
46:       @response_blocks[key].each {|block| block.call(result)}
47:       @response_blocks.delete(key)
48:       @called_methods.delete(key)
49:     end
calling(args, options) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 32
32:     def calling(args, options)
33:       @called_methods[args_options_key(args, options)] = true
34:     end
clear_cache() click to toggle source
    # File lib/typhoeus/remote_method.rb, line 51
51:     def clear_cache
52:       @response_blocks  = Hash.new {|h, k| h[k] = []}
53:       @called_methods   = {}      
54:     end
compile(path) click to toggle source

rippped from Sinatra. clean up stuff we don’t need later

     # File lib/typhoeus/remote_method.rb, line 82
 82:     def compile(path)
 83:       path ||= ""
 84:       keys = []
 85:       if path.respond_to? :to_str
 86:         special_chars = %{. + ( )}
 87:         pattern =
 88:           path.gsub(/((:\w+)|[\*#{special_chars.join}])/) do |match|
 89:             case match
 90:             when "*"
 91:               keys << 'splat'
 92:               "(.*?)"
 93:             when *special_chars
 94:               Regexp.escape(match)
 95:             else
 96:               keys << $2[1..1]
 97:               "([^/?&#]+)"
 98:             end
 99:           end
100:         [/^#{pattern}$/, keys]
101:       elsif path.respond_to? :match
102:         [path, keys]
103:       else
104:         raise TypeError, path
105:       end
106:     end
interpolate_path_with_arguments(args) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 67
67:     def interpolate_path_with_arguments(args)
68:       interpolated_path = @path
69:       argument_names.each do |arg|
70:         interpolated_path = interpolated_path.gsub(":#{arg}", args[arg].to_s)
71:       end
72:       interpolated_path
73:     end
memoize_responses?() click to toggle source
    # File lib/typhoeus/remote_method.rb, line 24
24:     def memoize_responses?
25:       @memoize_responses
26:     end
merge_options(new_options) click to toggle source
    # File lib/typhoeus/remote_method.rb, line 56
56:     def merge_options(new_options)
57:       merged = options.merge(new_options)
58:       if options.has_key?(:params) && new_options.has_key?(:params)
59:         merged[:params] = options[:params].merge(new_options[:params])
60:       end
61:       argument_names.each {|a| merged.delete(a)}
62:       merged.delete(:on_success) if merged[:on_success].nil?
63:       merged.delete(:on_failure) if merged[:on_failure].nil?
64:       merged
65:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.