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.
74
75
76
77
78
|
# File 'lib/utopia/middleware/requester.rb', line 74
def initialize(app, env = {})
@app = app
@env = env
@env[TTL_KEY] = 0
end
|
Instance Attribute Details
#env ⇒ Object
Returns the value of attribute env.
80
81
82
|
# File 'lib/utopia/middleware/requester.rb', line 80
def env
@env
end
|
Class Method Details
.[](env) ⇒ Object
65
66
67
68
69
70
71
72
|
# File 'lib/utopia/middleware/requester.rb', line 65
def self.[](env)
requestor = env[REQUESTOR_KEY]
if requestor
return requestor
else
raise NoRequesterError
end
end
|
Instance Method Details
#[](path, method = "GET", env = {}) ⇒ Object
105
106
107
108
109
110
111
|
# File 'lib/utopia/middleware/requester.rb', line 105
def [](path, method = "GET", env = {})
path_env = {
"REQUEST_METHOD" => method,
"PATH_INFO" => path.to_s
}
request(env.merge(path_env))
end
|
#call(env) ⇒ Object
82
83
84
85
86
87
88
89
|
# File 'lib/utopia/middleware/requester.rb', line 82
def call(env)
requestor = dup
env[REQUESTOR_KEY] = requestor
requestor.env = env.merge(@env)
requestor.env.delete("rack.request")
@app.call(env)
end
|