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