aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/rendering.rb
Commit message (Collapse)AuthorAgeFilesLines
* Variant negotiationLukasz Strzalkowski2014-02-131-1/+1
| | | | | | | | | | | | | | Allow setting `request.variant` as an array - an order in which they will be rendered. For example: request.variant = [:tablet, :phone] respond_to do |format| format.html.none format.html.phone # this gets rendered end
* Action Pack VariantsŁukasz Strzałkowski2013-12-041-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, variants in the templates will be picked up if a variant is set and there's a match. The format will be: app/views/projects/show.html.erb app/views/projects/show.html+tablet.erb app/views/projects/show.html+phone.erb If request.variant = :tablet is set, we'll automatically be rendering the html+tablet template. In the controller, we can also tailer to the variants with this syntax: class ProjectsController < ActionController::Base def show respond_to do |format| format.html do |html| @stars = @project.stars html.tablet { @notifications = @project.notifications } html.phone { @chat_heads = @project.chat_heads } end format.js format.atom end end end The variant itself is nil by default, but can be set in before filters, like so: class ApplicationController < ActionController::Base before_action do if request.user_agent =~ /iPad/ request.variant = :tablet end end end This is modeled loosely on custom mime types, but it's specifically not intended to be used together. If you're going to make a custom mime type, you don't need a variant. Variants are for variations on a single mime types.
* Renderer#_render_template should be privateRafael Mendonça França2013-11-191-7/+7
| | | | Closes #12831
* Remove remaining coupling with AV in MimeRespondsJosé Valim2013-09-091-0/+7
|
* Remove BasicRendering and remove template functionality from AbsC::RenderingJosé Valim2013-09-091-7/+5
|
* Move skeleton methods from AV to AbsCŁukasz Strzałkowski2013-09-031-22/+0
| | | | | | | | | | The methods: * #render_to_body * #render_to_string * #_normalize_render Haven't had anything specyfic to ActionView. This was common code which should belong to AbstractController
* Return to using protected_instance_variables in AVŁukasz Strzałkowski2013-09-021-4/+0
|
* Fist stab on basic renderingŁukasz Strzałkowski2013-08-251-2/+0
|
* Add #rendered_format method to controllersŁukasz Strzałkowski2013-08-251-0/+4
|
* Add missing requires inside AVŁukasz Strzałkowski2013-08-251-0/+1
|
* Revert "Move setting content_type to AV"Łukasz Strzałkowski2013-08-251-2/+0
| | | | This reverts commit f4d602aff6cec80304b131ecfcc2676d0304f0cc.
* Move setting content_type to AVŁukasz Strzałkowski2013-08-251-0/+2
|
* Use concat to avoid allocating additional arrayŁukasz Strzałkowski2013-08-251-1/+1
|
* Pass args to render's super methodŁukasz Strzałkowski2013-08-251-1/+2
|
* Improve AV::Rendering docsŁukasz Strzałkowski2013-08-251-2/+8
|
* Remove view_assigns from AVŁukasz Strzałkowski2013-08-251-7/+0
| | | | It wasn't adding anything, just invoking super
* Code formatting & typo fixesŁukasz Strzałkowski2013-08-251-35/+35
|
* Move protected_instance_variables & view_assigns to AbstractControllerŁukasz Strzałkowski2013-08-251-15/+4
|
* Remove 'api plugin' from docsŁukasz Strzałkowski2013-08-251-3/+0
| | | | AbstractController::Rendering is module which defines thie api
* Create AbstractController::Rendering interfaceŁukasz Strzałkowski2013-08-251-17/+4
| | | | This interface should be use when implementing renderers.
* Move rendering from AP to AVŁukasz Strzałkowski2013-08-251-0/+186