Class: HttpMonkey::Client::EnvironmentBuilder
- Inherits:
-
Object
- Object
- HttpMonkey::Client::EnvironmentBuilder
- Defined in:
- lib/http_monkey/client/environment_builder.rb
Overview
Great inspiration from github.com/rack/rack/blob/master/lib/rack/mock.rb, specially from Rack::MockRequest
Constant Summary collapse
- DEFAULT_ENV =
{ "rack.version" => Rack::VERSION, "rack.input" => nil, "rack.errors" => STDERR, "rack.multithread" => true, "rack.multiprocess" => false, "rack.run_once" => false, 'SCRIPT_NAME' => "" # call me Suzy }
Instance Method Summary collapse
-
#initialize(client, method, request) ⇒ EnvironmentBuilder
constructor
A new instance of EnvironmentBuilder.
-
#to_env ⇒ Object
Returns a instance of HttpMonkey::Client::Environment with rack like headers.
Constructor Details
#initialize(client, method, request) ⇒ EnvironmentBuilder
Returns a new instance of EnvironmentBuilder.
17 18 19 20 21 |
# File 'lib/http_monkey/client/environment_builder.rb', line 17 def initialize(client, method, request) @client = client @method = method @request = request end |
Instance Method Details
#to_env ⇒ Object
Returns a instance of HttpMonkey::Client::Environment with rack like headers.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/http_monkey/client/environment_builder.rb', line 25 def to_env rack_input = normalize_body(@request.body) env = HttpMonkey::Client::Environment.new(DEFAULT_ENV) env.uri = @request.url env.update({ # request info 'REQUEST_METHOD' => @method.to_s.upcase, 'rack.input' => rack_input, 'CONTENT_LENGTH' => rack_input.length.to_s, # custom info 'http_monkey.request' => [@method, @request, @client], 'http_monkey.storage' => @client.storage }) env.add_http_header(@request.headers) env end |