Class: Faraday::Request
- Inherits:
-
Struct
- Object
- Struct
- Faraday::Request
- Extended by:
- MiddlewareRegistry
- Defined in:
- lib/faraday/request.rb,
lib/faraday/request/json.rb,
lib/faraday/request/url_encoded.rb,
lib/faraday/request/authorization.rb,
lib/faraday/request/instrumentation.rb
Overview
Used to setup URLs, params, headers, and the request body in a sane manner.
Defined Under Namespace
Classes: Authorization, Instrumentation, Json, UrlEncoded
Instance Attribute Summary collapse
-
#body ⇒ String
Body.
-
#headers ⇒ Faraday::Utils::Headers
Headers.
-
#http_method ⇒ Symbol
The HTTP method of the Request.
-
#options ⇒ RequestOptions
Options.
-
#params ⇒ Hash
Query parameters.
-
#path ⇒ URI, String
The path.
Class Method Summary collapse
Instance Method Summary collapse
-
#[](key) ⇒ Object
Value of the given header name.
- #[]=(key, value) ⇒ Object
-
#marshal_dump ⇒ Hash
Marshal serialization support.
-
#marshal_load(serialised) ⇒ Object
Marshal serialization support.
-
#to_env(connection) ⇒ Env
The Env for this Request.
-
#url(path, params = nil) ⇒ void
Update path and params.
Methods included from MiddlewareRegistry
lookup_middleware, register_middleware, registered_middleware, unregister_middleware
Instance Attribute Details
#body ⇒ String
Returns body.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/faraday/request.rb', line 27 Request = Struct.new(:http_method, :path, :params, :headers, :body, :options) do extend MiddlewareRegistry alias_method :member_get, :[] private :member_get alias_method :member_set, :[]= private :member_set # @param request_method [String] # @yield [request] for block customization, if block given # @yieldparam request [Request] # @return [Request] def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end remove_method :params= # Replace params, preserving the existing hash type. # # @param hash [Hash] new params def params=(hash) if params params.replace hash else member_set(:params, hash) end end remove_method :headers= # Replace request headers, preserving the existing hash type. # # @param hash [Hash] new headers def headers=(hash) if headers headers.replace hash else member_set(:headers, hash) end end # Update path and params. # # @param path [URI, String] # @param params [Hash, nil] # @return [void] def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, .params_encoder self.params.update(params) if params end # @param key [Object] key to look up in headers # @return [Object] value of the given header name def [](key) headers[key] end # @param key [Object] key of header to write # @param value [Object] value of header def []=(key, value) headers[key] = value end # Marshal serialization support. # # @return [Hash] the hash ready to be serialized in Marshal. def marshal_dump { http_method: http_method, body: body, headers: headers, path: path, params: params, options: } end # Marshal serialization support. # Restores the instance variables according to the +serialised+. # @param serialised [Hash] the serialised object. def marshal_load(serialised) self.http_method = serialised[:http_method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self. = serialised[:options] end # @return [Env] the Env for this Request def to_env(connection) Env.new(http_method, body, connection.build_exclusive_url(path, params), , headers, connection.ssl, connection.parallel_manager) end end |
#headers ⇒ Faraday::Utils::Headers
Returns headers.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/faraday/request.rb', line 27 Request = Struct.new(:http_method, :path, :params, :headers, :body, :options) do extend MiddlewareRegistry alias_method :member_get, :[] private :member_get alias_method :member_set, :[]= private :member_set # @param request_method [String] # @yield [request] for block customization, if block given # @yieldparam request [Request] # @return [Request] def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end remove_method :params= # Replace params, preserving the existing hash type. # # @param hash [Hash] new params def params=(hash) if params params.replace hash else member_set(:params, hash) end end remove_method :headers= # Replace request headers, preserving the existing hash type. # # @param hash [Hash] new headers def headers=(hash) if headers headers.replace hash else member_set(:headers, hash) end end # Update path and params. # # @param path [URI, String] # @param params [Hash, nil] # @return [void] def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, .params_encoder self.params.update(params) if params end # @param key [Object] key to look up in headers # @return [Object] value of the given header name def [](key) headers[key] end # @param key [Object] key of header to write # @param value [Object] value of header def []=(key, value) headers[key] = value end # Marshal serialization support. # # @return [Hash] the hash ready to be serialized in Marshal. def marshal_dump { http_method: http_method, body: body, headers: headers, path: path, params: params, options: } end # Marshal serialization support. # Restores the instance variables according to the +serialised+. # @param serialised [Hash] the serialised object. def marshal_load(serialised) self.http_method = serialised[:http_method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self. = serialised[:options] end # @return [Env] the Env for this Request def to_env(connection) Env.new(http_method, body, connection.build_exclusive_url(path, params), , headers, connection.ssl, connection.parallel_manager) end end |
#http_method ⇒ Symbol
Returns the HTTP method of the Request.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/faraday/request.rb', line 27 Request = Struct.new(:http_method, :path, :params, :headers, :body, :options) do extend MiddlewareRegistry alias_method :member_get, :[] private :member_get alias_method :member_set, :[]= private :member_set # @param request_method [String] # @yield [request] for block customization, if block given # @yieldparam request [Request] # @return [Request] def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end remove_method :params= # Replace params, preserving the existing hash type. # # @param hash [Hash] new params def params=(hash) if params params.replace hash else member_set(:params, hash) end end remove_method :headers= # Replace request headers, preserving the existing hash type. # # @param hash [Hash] new headers def headers=(hash) if headers headers.replace hash else member_set(:headers, hash) end end # Update path and params. # # @param path [URI, String] # @param params [Hash, nil] # @return [void] def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, .params_encoder self.params.update(params) if params end # @param key [Object] key to look up in headers # @return [Object] value of the given header name def [](key) headers[key] end # @param key [Object] key of header to write # @param value [Object] value of header def []=(key, value) headers[key] = value end # Marshal serialization support. # # @return [Hash] the hash ready to be serialized in Marshal. def marshal_dump { http_method: http_method, body: body, headers: headers, path: path, params: params, options: } end # Marshal serialization support. # Restores the instance variables according to the +serialised+. # @param serialised [Hash] the serialised object. def marshal_load(serialised) self.http_method = serialised[:http_method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self. = serialised[:options] end # @return [Env] the Env for this Request def to_env(connection) Env.new(http_method, body, connection.build_exclusive_url(path, params), , headers, connection.ssl, connection.parallel_manager) end end |
#options ⇒ RequestOptions
Returns options.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/faraday/request.rb', line 27 Request = Struct.new(:http_method, :path, :params, :headers, :body, :options) do extend MiddlewareRegistry alias_method :member_get, :[] private :member_get alias_method :member_set, :[]= private :member_set # @param request_method [String] # @yield [request] for block customization, if block given # @yieldparam request [Request] # @return [Request] def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end remove_method :params= # Replace params, preserving the existing hash type. # # @param hash [Hash] new params def params=(hash) if params params.replace hash else member_set(:params, hash) end end remove_method :headers= # Replace request headers, preserving the existing hash type. # # @param hash [Hash] new headers def headers=(hash) if headers headers.replace hash else member_set(:headers, hash) end end # Update path and params. # # @param path [URI, String] # @param params [Hash, nil] # @return [void] def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, .params_encoder self.params.update(params) if params end # @param key [Object] key to look up in headers # @return [Object] value of the given header name def [](key) headers[key] end # @param key [Object] key of header to write # @param value [Object] value of header def []=(key, value) headers[key] = value end # Marshal serialization support. # # @return [Hash] the hash ready to be serialized in Marshal. def marshal_dump { http_method: http_method, body: body, headers: headers, path: path, params: params, options: } end # Marshal serialization support. # Restores the instance variables according to the +serialised+. # @param serialised [Hash] the serialised object. def marshal_load(serialised) self.http_method = serialised[:http_method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self. = serialised[:options] end # @return [Env] the Env for this Request def to_env(connection) Env.new(http_method, body, connection.build_exclusive_url(path, params), , headers, connection.ssl, connection.parallel_manager) end end |
#params ⇒ Hash
Returns query parameters.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/faraday/request.rb', line 27 Request = Struct.new(:http_method, :path, :params, :headers, :body, :options) do extend MiddlewareRegistry alias_method :member_get, :[] private :member_get alias_method :member_set, :[]= private :member_set # @param request_method [String] # @yield [request] for block customization, if block given # @yieldparam request [Request] # @return [Request] def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end remove_method :params= # Replace params, preserving the existing hash type. # # @param hash [Hash] new params def params=(hash) if params params.replace hash else member_set(:params, hash) end end remove_method :headers= # Replace request headers, preserving the existing hash type. # # @param hash [Hash] new headers def headers=(hash) if headers headers.replace hash else member_set(:headers, hash) end end # Update path and params. # # @param path [URI, String] # @param params [Hash, nil] # @return [void] def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, .params_encoder self.params.update(params) if params end # @param key [Object] key to look up in headers # @return [Object] value of the given header name def [](key) headers[key] end # @param key [Object] key of header to write # @param value [Object] value of header def []=(key, value) headers[key] = value end # Marshal serialization support. # # @return [Hash] the hash ready to be serialized in Marshal. def marshal_dump { http_method: http_method, body: body, headers: headers, path: path, params: params, options: } end # Marshal serialization support. # Restores the instance variables according to the +serialised+. # @param serialised [Hash] the serialised object. def marshal_load(serialised) self.http_method = serialised[:http_method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self. = serialised[:options] end # @return [Env] the Env for this Request def to_env(connection) Env.new(http_method, body, connection.build_exclusive_url(path, params), , headers, connection.ssl, connection.parallel_manager) end end |
#path ⇒ URI, String
Returns the path.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/faraday/request.rb', line 27 Request = Struct.new(:http_method, :path, :params, :headers, :body, :options) do extend MiddlewareRegistry alias_method :member_get, :[] private :member_get alias_method :member_set, :[]= private :member_set # @param request_method [String] # @yield [request] for block customization, if block given # @yieldparam request [Request] # @return [Request] def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end remove_method :params= # Replace params, preserving the existing hash type. # # @param hash [Hash] new params def params=(hash) if params params.replace hash else member_set(:params, hash) end end remove_method :headers= # Replace request headers, preserving the existing hash type. # # @param hash [Hash] new headers def headers=(hash) if headers headers.replace hash else member_set(:headers, hash) end end # Update path and params. # # @param path [URI, String] # @param params [Hash, nil] # @return [void] def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, .params_encoder self.params.update(params) if params end # @param key [Object] key to look up in headers # @return [Object] value of the given header name def [](key) headers[key] end # @param key [Object] key of header to write # @param value [Object] value of header def []=(key, value) headers[key] = value end # Marshal serialization support. # # @return [Hash] the hash ready to be serialized in Marshal. def marshal_dump { http_method: http_method, body: body, headers: headers, path: path, params: params, options: } end # Marshal serialization support. # Restores the instance variables according to the +serialised+. # @param serialised [Hash] the serialised object. def marshal_load(serialised) self.http_method = serialised[:http_method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self. = serialised[:options] end # @return [Env] the Env for this Request def to_env(connection) Env.new(http_method, body, connection.build_exclusive_url(path, params), , headers, connection.ssl, connection.parallel_manager) end end |
Class Method Details
.create(request_method) {|request| ... } ⇒ Request
39 40 41 42 43 |
# File 'lib/faraday/request.rb', line 39 def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end |
Instance Method Details
#[](key) ⇒ Object
Returns value of the given header name.
92 93 94 |
# File 'lib/faraday/request.rb', line 92 def [](key) headers[key] end |
#[]=(key, value) ⇒ Object
98 99 100 |
# File 'lib/faraday/request.rb', line 98 def []=(key, value) headers[key] = value end |
#marshal_dump ⇒ Hash
Marshal serialization support.
105 106 107 108 109 110 111 112 113 114 |
# File 'lib/faraday/request.rb', line 105 def marshal_dump { http_method: http_method, body: body, headers: headers, path: path, params: params, options: } end |
#marshal_load(serialised) ⇒ Object
Marshal serialization support. Restores the instance variables according to the +serialised+.
119 120 121 122 123 124 125 126 |
# File 'lib/faraday/request.rb', line 119 def marshal_load(serialised) self.http_method = serialised[:http_method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self. = serialised[:options] end |
#to_env(connection) ⇒ Env
Returns the Env for this Request.
129 130 131 132 |
# File 'lib/faraday/request.rb', line 129 def to_env(connection) Env.new(http_method, body, connection.build_exclusive_url(path, params), , headers, connection.ssl, connection.parallel_manager) end |
#url(path, params = nil) ⇒ void
This method returns an undefined value.
Update path and params.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/faraday/request.rb', line 74 def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, .params_encoder self.params.update(params) if params end |