Module: ActionView::Component::RenderMonkeyPatch

Defined in:
lib/action_view/component/render_monkey_patch.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#render(options = {}, args = {}, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/action_view/component/render_monkey_patch.rb', line 10

def render(options = {}, args = {}, &block)
  if options.respond_to?(:render_in)
    ActiveSupport::Deprecation.warn(
      "passing component instances (`render MyComponent.new(foo: :bar)`) has been deprecated and will be removed in v2.0.0. Use `render MyComponent, foo: :bar` instead."
    )

    options.render_in(self, &block)
  elsif options.is_a?(Class) && options < ActionView::Component::Base
    options.new(args).render_in(self, &block)
  elsif options.is_a?(Hash) && options.has_key?(:component)
    options[:component].new(options[:locals]).render_in(self, &block)
  elsif options.respond_to?(:to_component_class) && !options.to_component_class.nil?
    options.to_component_class.new(options).render_in(self, &block)
  else
    super
  end
end