module SelfRenderer
Constants
- VERSION
Public Instance Methods
render_to_hash(template: nil, partial: nil, assigns: {}, locals: {})
click to toggle source
Returns a Hash representation of this object as rendered by render_to_json
# File lib/self_renderer.rb, line 17 def render_to_hash(template: nil, partial: nil, assigns: {}, locals: {}) raise ArgumentError.new("Must use json template") unless template.nil? || template.to_s.include?(".json") raise ArgumentError.new("Must use json partial") unless partial.nil? || partial.to_s.include?(".json") JSON.load render_with(template: template, partial: partial, assigns: assigns, locals: locals) end
render_with(template: nil, partial: nil, assigns: {}, locals: {})
click to toggle source
Renders an string representing this object using the specified template or partial
# File lib/self_renderer.rb, line 7 def render_with(template: nil, partial: nil, assigns: {}, locals: {}) name = self.class.name.parameterize(separator: "_").to_sym assigns[name] = self locals[name] = self return self_renderer.render(template, assigns: assigns, locals: locals).squish if template.present? return self_renderer.render(partial: partial, assigns: assigns, locals: locals).squish if partial.present? nil end
Protected Instance Methods
self_renderer()
click to toggle source
# File lib/self_renderer.rb, line 25 def self_renderer @self_renderer ||= begin renderer = ApplicationController.renderer.new # get around limitations in devise/warden when rendering views outside the contect of a formal http request if defined? Warden env = renderer.instance_eval { @env } warden = Warden::Proxy.new(env, Warden::Manager.new(Rails.application)) env["warden"] = warden end renderer end end