Module: HalApi::Controller::Exceptions
- Included in:
- HalApi::Controller
- Defined in:
- lib/hal_api/controller/exceptions.rb
Overview
Since we are taking over exception handling, make sure we log exceptions github.com/rails/rails/blob/4-2-stable/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
Instance Method Details
#log_error(env, wrapper) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/hal_api/controller/exceptions.rb', line 19 def log_error(env, wrapper) logger = env['action_dispatch.logger'] || self.logger || ActiveSupport::Logger.new($stderr) return unless logger exception = wrapper.exception trace = wrapper.application_trace trace = wrapper.framework_trace if trace.empty? ActiveSupport::Deprecation.silence do = "\n#{exception.class} (#{exception.message}):\n" << exception.annoted_source_code.to_s if exception.respond_to?(:annoted_source_code) << " " << trace.join("\n ") logger.fatal("#{message}\n\n") end end |
#respond_with_error(exception) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/hal_api/controller/exceptions.rb', line 7 def respond_with_error(exception) wrapper = ::ActionDispatch::ExceptionWrapper.new(env, exception) log_error(env, wrapper) error = exception.is_a?(HalApi::Errors::ApiError) ? exception : HalApi::Errors::ApiError.new respond_with( error, status: error.status, represent_with: HalApi::Errors::Representer ) end |