6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/toolchest/renderer.rb', line 6
def render(toolbox, action_or_template)
ensure_handlers_registered!
name = action_or_template.to_s
template_name = name.include?("/") ? name : "#{toolbox.controller_name}/#{name}"
assigns = (toolbox)
lookup = ActionView::LookupContext.new(view_paths)
view = ActionView::Base.with_empty_template_cache.new(lookup, assigns, nil)
apply_helpers(view, toolbox)
result = view.render(template: template_name, formats: [:json])
case result
when String
begin
JSON.parse(result)
rescue JSON::ParserError
result
end
when Hash, Array
result
else
result
end
rescue ActionView::MissingTemplate
raise Toolchest::MissingTemplate,
"Missing template toolboxes/#{template_name} with formats: json (searched in: #{view_paths.join(", ")})"
end
|