module Upmin::Railties::Render
Public Instance Methods
up_render(data, options = {})
click to toggle source
Render
method that is used by upmin-admin. Tries to render partials in order, passing data in as the :object, along with options.
# File lib/upmin/railties/render.rb, line 6 def up_render(data, options = {}) if data.is_a?(Upmin::Model) options = RenderHelpers.model_options(data, options) partials = RenderHelpers.model_partials(data, options) elsif data.is_a?(Upmin::Attribute) options = RenderHelpers.attribute_options(data, options) partials = RenderHelpers.attribute_partials(data, options) elsif data.is_a?(Upmin::Association) options = RenderHelpers.association_options(data, options) partials = RenderHelpers.association_partials(data, options) elsif data.is_a?(Upmin::Action) options = RenderHelpers.action_options(data, options) partials = RenderHelpers.action_partials(data, options) elsif data.is_a?(Upmin::Parameter) options = RenderHelpers.parameter_options(data, options) partials = RenderHelpers.parameter_partials(data, options) elsif data.is_a?(Upmin::Query) options = RenderHelpers.search_results_options(data, options) partials = RenderHelpers.search_results_partials(data, options) elsif data.superclass == Upmin::Model # Probably rendering a search box options = RenderHelpers.search_box_options(data, options) partials = RenderHelpers.search_box_partials(data, options) else raise Upmin::ArgumentError.new(data) end # Use options as the render hash, and set :object as the data being used for rendering. options[:object] = data partials.each do |partial| begin options[:partial] = partial return render(options) rescue ActionView::MissingTemplate => e end end # If we get here we tried all of the partials and nothing matched. This *shouldn't* be possible but might happen if partials are deleted. raise Upmin::MissingPartial.new(data) end