Class: Alice::Request
- Extended by:
- AutoloadHelper
- Defined in:
- lib/alice/request.rb
Overview
Used to setup urls, params, headers, and the request body in a sane manner.
@connection.post do |req|
req.url 'http://localhost', 'a' => '1' # 'http://localhost?a=1'
req.headers['b'] = '2' # header
req['b'] = '2' # header
req.body = 'abc'
end
Defined Under Namespace
Classes: ActiveSupportJson, Yajl
Instance Attribute Summary collapse
-
#body ⇒ Object
Returns the value of attribute body.
-
#headers ⇒ Object
Returns the value of attribute headers.
-
#params ⇒ Object
Returns the value of attribute params.
-
#path ⇒ Object
Returns the value of attribute path.
Class Method Summary collapse
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #run(connection, request_method) ⇒ Object
-
#to_env_hash(connection, request_method) ⇒ Object
ENV Keys :method - a symbolized request method (:get, :post) :body - the request body that will eventually be converted to a string.
- #url(path, params = {}) ⇒ Object
Methods included from AutoloadHelper
all_loaded_constants, autoload_all, load_autoloaded_constants, lookup_module, register_lookup_modules
Instance Attribute Details
#body ⇒ Object
Returns the value of attribute body
11 12 13 |
# File 'lib/alice/request.rb', line 11 def body @body end |
#headers ⇒ Object
Returns the value of attribute headers
11 12 13 |
# File 'lib/alice/request.rb', line 11 def headers @headers end |
#params ⇒ Object
Returns the value of attribute params
11 12 13 |
# File 'lib/alice/request.rb', line 11 def params @params end |
#path ⇒ Object
Returns the value of attribute path
11 12 13 |
# File 'lib/alice/request.rb', line 11 def path @path end |
Class Method Details
.create {|req| ... } ⇒ Object
29 30 31 32 33 |
# File 'lib/alice/request.rb', line 29 def self.create req = new(nil, {}, {}, nil) yield req if block_given? req end |
.run(connection, request_method) {|req| ... } ⇒ Object
23 24 25 26 27 |
# File 'lib/alice/request.rb', line 23 def self.run(connection, request_method) req = create yield req if block_given? req.run(connection, request_method) end |
Instance Method Details
#[](key) ⇒ Object
40 41 42 |
# File 'lib/alice/request.rb', line 40 def [](key) headers[key] end |
#[]=(key, value) ⇒ Object
44 45 46 |
# File 'lib/alice/request.rb', line 44 def []=(key, value) headers[key] = value end |
#run(connection, request_method) ⇒ Object
71 72 73 74 75 |
# File 'lib/alice/request.rb', line 71 def run(connection, request_method) app = connection.to_app env = to_env_hash(connection, request_method) app.call(env) end |
#to_env_hash(connection, request_method) ⇒ Object
ENV Keys :method - a symbolized request method (:get, :post) :body - the request body that will eventually be converted to a string. :url - Addressable::URI instance of the URI for the current request. :status - HTTP response status code :request_headers - hash of HTTP Headers to be sent to the server :response_headers - Hash of HTTP headers from the server :parallel_manager - sent if the connection is in parallel mode :response - the actual response object that stores the rack response
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/alice/request.rb', line 57 def to_env_hash(connection, request_method) env_headers = connection.headers.dup env_params = connection.params.dup connection.merge_headers env_headers, headers connection.merge_params env_params, params { :method => request_method, :body => body, :url => connection.build_url(path, env_params), :request_headers => env_headers, :parallel_manager => connection.parallel_manager, :response => Response.new} end |
#url(path, params = {}) ⇒ Object
35 36 37 38 |
# File 'lib/alice/request.rb', line 35 def url(path, params = {}) self.path = path self.params = params end |