Method: ActionController::Renderer#initialize
- Defined in:
- actionpack/lib/action_controller/renderer.rb
#initialize(controller, env, defaults) ⇒ Renderer
Initializes a new Renderer.
#### Parameters
-
‘controller` - The controller class to instantiate for rendering.
-
‘env` - The Rack env to use for mocking a request when rendering. Entries can be typical Rack env keys and values, or they can be any of the following, which will be converted appropriately:
-
‘:http_host` - The HTTP host for the incoming request. Converts to Rack’s ‘HTTP_HOST`.
-
‘:https` - Boolean indicating whether the incoming request uses HTTPS. Converts to Rack’s ‘HTTPS`.
-
‘:method` - The HTTP method for the incoming request, case-insensitive. Converts to Rack’s ‘REQUEST_METHOD`.
-
‘:script_name` - The portion of the incoming request’s URL path that corresponds to the application. Converts to Rack’s ‘SCRIPT_NAME`.
-
‘:input` - The input stream. Converts to Rack’s ‘rack.input`.
-
-
‘defaults` - Default values for the Rack env. Entries are specified in the same format as `env`. `env` will be merged on top of these values. `defaults` will be retained when calling #new on a renderer instance.
If no ‘http_host` is specified, the env HTTP host will be derived from the routes’ ‘default_url_options`. In this case, the `https` boolean and the `script_name` will also be derived from `default_url_options` if they were not specified. Additionally, the `https` boolean will fall back to `Rails.application.config.force_ssl` if `default_url_options` does not specify a `protocol`.
111 112 113 114 115 116 117 118 119 120 |
# File 'actionpack/lib/action_controller/renderer.rb', line 111 def initialize(controller, env, defaults) @controller = controller @defaults = defaults if env.blank? && @defaults == DEFAULTS @env = DEFAULT_ENV else @env = normalize_env(@defaults) @env.merge!(normalize_env(env)) unless env.blank? end end |