class Errgent::Renderer
Public Class Methods
new(options = {})
click to toggle source
# File lib/errgent/renderer.rb, line 2 def initialize(options = {}) @vars = options[:vars] || {} @codes = options[:codes] || [403, 404, 422, 500] @layout = options[:layout] || 'layouts/error_page' @output = options[:output] || 'public/%s.html' end
Public Instance Methods
helpers(&block)
click to toggle source
# File lib/errgent/renderer.rb, line 18 def helpers(&block) action_view.class_eval(&block) end
render()
click to toggle source
# File lib/errgent/renderer.rb, line 9 def render @codes.each do |code| File.open(Rails.root.join(@output % code), 'w') do |io| action_view.assign(@vars.merge(code: code)) io.write action_view.render(template: @layout) end end end
Private Instance Methods
action_view()
click to toggle source
# File lib/errgent/renderer.rb, line 24 def action_view @action_view ||= begin paths = ::ActionController::Base.view_paths ::ActionView::Base.new(paths).tap do |view| view.class_eval do include Rails.application.helpers include Rails.application.routes.url_helpers end end end end