class SimpleJson::SimpleJsonRenderer
Attributes
controller[R]
Public Class Methods
clear_renderers()
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 51 def clear_renderers @renderers = {} @templates_loaded = false end
load_all_templates!()
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 16 def load_all_templates! @renderers = {} SimpleJson.template_paths.each do |path| template_files = Rails.root.glob("#{path}/**/*.simple_json.rb") template_files.each do |file_path| template_path = file_path.relative_path_from(Rails.root.join(path)).to_path.delete_suffix('.simple_json.rb') @renderers[template_path] = SimpleJsonTemplate.new(file_path.to_path).renderer end end @templates_loaded = true end
load_template(template_path)
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 29 def load_template(template_path) if SimpleJson.template_cache_enabled? load_all_templates! unless templates_loaded? renderers[template_path] else load_template_from_file(template_path) end end
load_template_from_file(template_path)
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 38 def load_template_from_file(template_path) SimpleJson.template_paths.each do |path| file_path = Rails.root.join("#{path}/#{template_path}.simple_json.rb").to_path return SimpleJsonTemplate.new(file_path).renderer if File.exist?(file_path) end nil end
new(controller)
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 57 def initialize(controller) @controller = controller @_assigns = controller.view_assigns.each { |key, value| instance_variable_set("@#{key}", value) } end
renderers()
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 47 def renderers @renderers ||= {} end
templates_loaded?()
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 12 def templates_loaded? @templates_loaded end
Public Instance Methods
cache!(key, **options) { || ... }
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 86 def cache!(key, **options, &block) if controller.perform_caching key = Array.wrap(key).unshift(SimpleJson.cache_key_prefix) Rails.cache.fetch(key, options, &block) else yield end end
cache_if!(condition, *args, **options) { || ... }
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 95 def cache_if!(condition, *args, **options, &block) condition ? cache!(*args, **options, &block) : yield end
partial!(template_name, **params)
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 80 def partial!(template_name, **params) raise TemplateNotFound, "#{template_name} not found" unless renderer(template_name) render(template_name, **params) end
render(template_name, **params)
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 72 def render(template_name, **params) if !params.empty? instance_exec(**params, &renderer(template_name)) else instance_exec(&renderer(template_name)) end end
Also aliased as: render_without_tracing
render_with_tracing(template_name, params)
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 102 def render_with_tracing(template_name, params) self.class.trace_execution_scoped("View/#{template_name}.simple_json.rb/Rendering") do render_without_tracing(template_name, params) end end
Also aliased as: render
renderer(template_path)
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 62 def renderer(template_path) renderers[template_path] || self.class.load_template(template_path).tap do |renderer| renderers[template_path] = renderer end end
renderers()
click to toggle source
# File lib/simple_json/simple_json_renderer.rb, line 68 def renderers @renderers ||= {} end