app/controllers/application_controller.rb in local_pac-0.6.3 vs app/controllers/application_controller.rb in local_pac-0.7.0

- old
+ new

@@ -30,36 +30,78 @@ use Rack::Locale use Rack::NestedParams use Rack::PostBodyContentTypeParser not_found do - @error_summary = I18n.t('errors.unknown_proxy_pac.summary') - @error_details = I18n.t('errors.unknown_proxy_pac.details', name: env['PATH_INFO']) + handler = ErrorHandler.find(Exceptions::PacFileUnknown) + handler.use(JSON.dump(name: env['PATH_INFO'])) + @error_summary = handler.summary(:html) + @error_details = handler.details(:html) + halt 404, haml(:error, layout: :application) end error do - @error_summary = I18n.t('errors.default.summary') - @error_details = I18n.t('errors.default.details') + handler = ErrorHandler.find(StandardError) + @error_summary = handler.summary(:html) + @error_details = handler.details(:html) + halt 500, haml(:error, layout: :application) end + error Exceptions::PacFileInvalid do + handler = ErrorHandler.find(Exceptions::PacFileInvalid) + handler.use(JSON.dump(name: env['sinatra.error'].message)) + + @error_summary = handler.summary(:html) + @error_details = handler.details(:html) + + halt 401, haml(:error, layout: :application) + end + error Exceptions::GivenUrlInvalid do - @error_summary = I18n.t('errors.invalid_url.summary') - @error_details = I18n.t('errors.invalid_url.details', url: env['sinatra.error'].message) + handler = ErrorHandler.find(Exceptions::GivenUrlInvalid) + handler.use(env['sinatra.error'].message) + @error_summary = handler.summary(:html) + @error_details = handler.details(:html) + halt 401, haml(:error, layout: :application) end + error Exceptions::GivenTimeInvalid do + handler = ErrorHandler.find(Exceptions::GivenTimeInvalid) + handler.use(env['sinatra.error'].message) + + @error_summary = handler.summary(:html) + @error_details = handler.details(:html) + + halt 401, haml(:error, layout: :application) + end + + error Exceptions::GivenClientIpInvalid do + handler = ErrorHandler.find(Exceptions::GivenClientIpInvalid) + handler.use(env['sinatra.error'].message) + + @error_summary = handler.summary(:html) + @error_details = handler.details(:html) + + halt 401, haml(:error, layout: :application) + end + + set :raise_sinatra_param_exceptions, true error Sinatra::Param::InvalidParameterError do - @error_summary = I18n.t('errors.invalid_parameter.summary') - @error_details = I18n.t('errors.invalid_parameter.details', parameter: env['sinatra.error'].param) + handler = ErrorHandler.find(Sinatra::Param::InvalidParameterError) + handler.use(JSON.dump(parameter: env['sinatra.error'].param)) + @error_summary = handler.summary(:html) + @error_details = handler.details(:html) + halt 401, haml(:error, layout: :application) end configure :profile do require 'ruby-prof' @@ -84,20 +126,14 @@ end end configure :test do use Rack::CommonLogger, LocalPac::NullAccessLogger.new - set :raise_errors, false + set :raise_errors, true end configure do mime_type :proxy_pac_file, 'application/x-ns-proxy-autoconfig' - - I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks) - I18n.load_path = Dir[::File.join(settings.root, 'locales', '*.yml')] - I18n.backend.load_translations - - I18n.enforce_available_locales = true end helpers do include Sprockets::Helpers