Class: ActionView::Template::Renderable
Do not use. This class is for internal use only.
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | actionview/lib/action_view/template/renderable.rb |
Overview
Action View Renderable Template for objects that respond to #render_in
Class Method Summary
- .new(renderable, &block) ⇒ Renderable constructor
Instance Method Summary
Constructor Details
.new(renderable, &block) ⇒ Renderable
# File 'actionview/lib/action_view/template/renderable.rb', line 7
def initialize(renderable, &block) @renderable = renderable @block = block end
Instance Method Details
#format
[ GitHub ]# File 'actionview/lib/action_view/template/renderable.rb', line 38
def format @renderable.try(:format) end
#identifier
[ GitHub ]# File 'actionview/lib/action_view/template/renderable.rb', line 12
def identifier @renderable.class.name end
#render(context, locals)
[ GitHub ]# File 'actionview/lib/action_view/template/renderable.rb', line 16
def render(context, locals) render_in_method = Kernel.instance_method(:method).bind_call(@renderable, :render_in) if render_in_method.arity == 1 ActionView.deprecator.warn <<~WARN Action View support for #render_in without options is deprecated. Change #render_in to accept keyword arguments. WARN @renderable.render_in(context, &@block) else @renderable.render_in(context, locals: locals, &@block) end rescue NameError if !@renderable.respond_to?(:render_in) raise ArgumentError, "'#{@renderable.inspect}' is not a renderable object. It must implement #render_in." else raise end end