class ActionView::TemplateRenderer

def determine_template(options)

Experimental RBS support (using type sampling data from the type_fusion project).

def determine_template: (Hash options) -> ActionView::Template

This signature was generated using 1 sample from 1 application.

Determine the template to be rendered using the given options.
def determine_template(options)
  keys = options.has_key?(:locals) ? options[:locals].keys : []
  if options.key?(:body)
    Template::Text.new(options[:body])
  elsif options.key?(:plain)
    Template::Text.new(options[:plain])
  elsif options.key?(:html)
    Template::HTML.new(options[:html], formats.first)
  elsif options.key?(:file)
    if File.exist?(options[:file])
      Template::RawFile.new(options[:file])
    else
      if Pathname.new(options[:file]).absolute?
        raise ArgumentError, "File #{options[:file]} does not exist"
      else
        raise ArgumentError, "`render file:` should be given the absolute path to a file. '#{options[:file]}' was given instead"
      end
    end
  elsif options.key?(:inline)
    handler = Template.handler_for_extension(options[:type] || "erb")
    format = if handler.respond_to?(:default_format)
      handler.default_format
    else
      @lookup_context.formats.first
    end
    Template::Inline.new(options[:inline], "inline template", handler, locals: keys, format: format)
  elsif options.key?(:renderable)
    Template::Renderable.new(options[:renderable])
  elsif options.key?(:template)
    if options[:template].respond_to?(:render)
      options[:template]
    else
      @lookup_context.find_template(options[:template], options[:prefixes], false, keys, @details)
    end
  else
    raise ArgumentError, "You invoked render but did not give any of :partial, :template, :inline, :file, :plain, :html or :body option."
  end
end