Sha256: 20e8e0957a6e4e3c6f4261563412e5978c4efb2e2c72078a9426a724aec6440a

Contents?: true

Size: 957 Bytes

Versions: 3

Compression:

Stored size: 957 Bytes

Contents

class SimplificatorInfrastructure::ErrorsController < ActionController::Base
  around_filter :with_locale

  layout 'simplificator_infrastructure/errors'
  helper_method :error_summary


  def render_error
    render template, status: error_summary.status_code
  end

  private

  def template
    if specific_error_template_exists?
      specific_template
    else
      generic_template
    end
  end

  def specific_template
    "errors/#{error_summary.status_code}"
  end

  def generic_template
    'errors/generic_error'
  end

  def specific_error_template_exists?
    lookup_context.template_exists?(error_summary.status_code, "errors", false)
  end

  def error_summary
    @error_summary ||= begin
      ::SimplificatorInfrastructure::ErrorSummary.new(env)
    end
  end

  # sets the locale and resets afterwards for I18n.t to work in error templates
  def with_locale
    I18n.with_locale(error_summary.locale) do
      yield
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
simplificator_infrastructure-0.0.5 app/controllers/simplificator_infrastructure/errors_controller.rb
simplificator_infrastructure-0.0.4 app/controllers/simplificator_infrastructure/errors_controller.rb
simplificator_infrastructure-0.0.3 app/controllers/simplificator_infrastructure/errors_controller.rb