Module: Sinatra::ErrorHandler

Extended by:
Hexacta
Defined in:
lib/sinatra/handlers/errors.rb

Constant Summary

Constants included from Hexacta

Hexacta::GEM_FILE_DIR

Instance Method Summary collapse

Methods included from Hexacta

copy_dir_structure, setup_dir, symlink, symlink_all

Instance Method Details

#enable_errorsObject



6
7
8
9
10
11
12
13
# File 'lib/sinatra/handlers/errors.rb', line 6

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

#error_template(code) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/sinatra/handlers/errors.rb', line 15

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.instance.send_error(authenticated(User),title,message)
    end
    slim "#{Hexacta::GEM_FILE_DIR}/errors/#{code}".to_sym, locals: { :params => params }
  end
end