Sha256: d0a8d87b01e4b4d3c229b428902b79715c9e89f48513b5e4a97bb3186553c777

Contents?: true

Size: 886 Bytes

Versions: 2

Compression:

Stored size: 886 Bytes

Contents

# encoding: utf-8
module Sinatra
  module ErrorHandler
    extend Hexacta

    def enable_errors
      p "Enabling errors..."
      ErrorHandler.setup_dir("/app/views/#{Hexacta::GEM_FILE_DIR}/errors")

      error_template(404)
      error_template(403)
      error_template(500)
    end

    def error_template(code)
      ErrorHandler.symlink("/lib/sinatra/views/errors/#{code}.slim","/app/views/#{Hexacta::GEM_FILE_DIR}/errors/#{code}.slim")
      error code do
        if code == 500
          title = env['sinatra.error'].message.split(':')[0].gsub('#<','');
          message = (["in #{request.url}"] + env['sinatra.error'].backtrace).join(',');
          NotificationSender.send_error(authenticated(User),title,message)
        end
        slim "#{Hexacta::GEM_FILE_DIR}/errors/#{code}".to_sym, locals: { :params => params }
      end
    end

  end

  register ErrorHandler
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sinatra-hexacta-0.1.1 lib/sinatra/handlers/errors.rb
sinatra-hexacta-0.1.0 lib/sinatra/handlers/errors.rb