class Hypernova::Plugin::ServerStacktrace

Constants

VERSION

Public Class Methods

new(logger) click to toggle source
# File lib/hypernova/plugin/server_stacktrace.rb, line 8
def initialize(logger)
  @logger = logger
end

Public Instance Methods

after_response(current_response, _original_response) click to toggle source
# File lib/hypernova/plugin/server_stacktrace.rb, line 12
def after_response(current_response, _original_response)
  current_response.tap do |hash|
    hash
      .map { |name, result| [name, result.dig("error", "stack")] }
      .select { |_, stack_trace| stack_trace }
      .each { |name, stack_trace| log(name, stack_trace) }
  end
end

Private Instance Methods

log(name, stack_trace) click to toggle source
# File lib/hypernova/plugin/server_stacktrace.rb, line 23
      def log(name, stack_trace)
        @logger.error <<~BODY
          The #{name} component failed to render with Hypernova. Error stack:
          #{stack_trace.join("\n    ")}
        BODY
      end