exception_page v0.5.0
Exception Page 
A library for displaying exceptional exception pages for easier debugging.

Installation
Add this to your application's shard.yml:
dependencies:
  exception_page:
    github: crystal-loot/exception_page
Usage
Require the shard:
require "exception_page"
Create an exception page:
class MyApp::ExceptionPage < ExceptionPage
  def styles : Styles
    ExceptionPage::Styles.new(
      accent: "purple", # Choose the HTML color value. Can be hex
    )
  end
end
Render the HTML when an exception occurs:
class MyErrorHandler
  include HTTP::Handler
  def call_next(context)
    begin
      # Normally you'd call some code to handle the request
      # We're hard-coding an error here to show you how to use the lib.
      raise SomeError.new("Something went wrong")
    rescue e
      context.response.status_code = 500
      context.response.print MyApp::ExceptionPage.new context, e
    end
  end
Customizing the page
class MyApp::ExceptionPage < ExceptionPage
  def styles : Styles
    ExceptionPage::Styles.new(
      accent: "purple", # Required
      highlight: "gray", # Optional
      flash_highlight: "red", # Optional
      logo_uri: "base64_encoded_data_uri" # Optional. Defaults to Crystal logo. Generate a logo here: https://dopiaza.org/tools/datauri/index.php
    )
  end
  # Optional. If provided, clicking the logo will open this page
  def project_url
    "https://myproject.com"
  end
  # Optional
  def stack_trace_heading_html
    <<-HTML
    <a href="#" onclick="sayHi()">Say hi</a>
    HTML
  end
  # Optional
  def extra_javascript
    <<-JAVASCRIPT
    window.sayHi = function() {
      alert("Say Hi!");
    }
    JAVASCRIPT
  end
end
Development
TODO: Write development instructions here
Contributing
- Fork it (https://github.com/crystal-loot/exception_page/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- @paulcsmith Paul Smith
- @faustinoaq Faustino Aigular - Wrote the initial Amber PR adding exception pages
- @Sija Sijawusz Pur Rahnama
Special Thanks
This exception page is heavily based on the Phoenix error page by @rstacruz. Thanks to the Phoenix team and @rstacruz!
Repository
  exception_page
Owner
  
  Statistic
  - 70
- 10
- 1
- 19
- 3
- 7 months ago
- June 29, 2018
License
  MIT License
Links
  
  Synced at
  Thu, 30 Oct 2025 16:09:41 GMT
Languages