Class: Utopia::Middleware::Requester
- Inherits:
-
Object
- Object
- Utopia::Middleware::Requester
show all
- Defined in:
- lib/utopia/middleware/requester.rb
Defined Under Namespace
Classes: NoRequesterError, RecursiveRequestError, Response
Constant Summary
collapse
- TTL_KEY =
"utopia.requestor.ttl"
- REQUESTOR_KEY =
"utopia.requestor"
- PATH_VARIABLES =
Set.new
- MAXIMUM_DEPTH =
5
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(app, env = {}) ⇒ Requester
Returns a new instance of Requester.
63
64
65
66
67
|
# File 'lib/utopia/middleware/requester.rb', line 63
def initialize(app, env = {})
@app = app
@env = env
@env[TTL_KEY] = 0
end
|
Instance Attribute Details
#env ⇒ Object
Returns the value of attribute env.
69
70
71
|
# File 'lib/utopia/middleware/requester.rb', line 69
def env
@env
end
|
Class Method Details
.[](env) ⇒ Object
54
55
56
57
58
59
60
61
|
# File 'lib/utopia/middleware/requester.rb', line 54
def self.[](env)
requestor = env[REQUESTOR_KEY]
if requestor
return requestor
else
raise NoRequesterError
end
end
|
Instance Method Details
#[](path, method = "GET", env = {}) ⇒ Object
94
95
96
97
98
99
100
|
# File 'lib/utopia/middleware/requester.rb', line 94
def [](path, method = "GET", env = {})
path_env = {
"REQUEST_METHOD" => method,
"PATH_INFO" => path.to_s
}
request(env.merge(path_env))
end
|
#call(env) ⇒ Object
71
72
73
74
75
76
77
78
|
# File 'lib/utopia/middleware/requester.rb', line 71
def call(env)
requestor = dup
env[REQUESTOR_KEY] = requestor
requestor.env = env.merge(@env)
requestor.env.delete("rack.request")
@app.call(env)
end
|