Skip to content

ragnard/clj-squash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

clj-squash

Clojure client library for the Squash bug killer by Square.

NOTE: This is currently the result of a few hours of hacking with the purpose of trying out Squash for Clojure applications. No thourough testing has been performed.

Artifacts

clj-squash is available on Clojars and the current version is:

[clj-squash "0.1.1"]

Usage

Use the notifier function in com.github.ragnard.clj-squash.api to create a function that when applied to an Exception will send a notification to a Squash instance:

(require '[com.github.ragnard.clj-squash.api :as squash])
    
(let [notify (squash/notifier {:api-host "http://localhost:8081"
                               :api-key "fa2818ce-5480-4aa0-87a9-43a342bf425a"
                               :environment "dev"})]
  (notify (ex-info "Invalid use of robot" {:robot-id 42})))

An optional update function can also be passed as second argument to a notification function. This function will be applied to the map of notification data before it is transmitted, and is expected to return a new, potentially different map. This can be used to extend, inspect or alter the update data in any way imaginable, like so:

(require '[com.github.ragnard.clj-squash.api :as squash])

(let [notify (squash/notifier {:api-host "http://localhost:8081"
                               :api-key "fa2818ce-5480-4aa0-87a9-43a342bf425a"
                               :environment "dev"})]
  (notify (ex-info "Invalid use of robot" {:robot-id 42})
          (fn [notification-data]
            (update-in notification-data [:user_data] assoc :robot-favourite-pet "Turtle"))))

See doc for notifier for info on available options.

Any data conveyed with ex-info will be submitted as user_data to Squash and is therefore nicely available in the UI.

Ring Middleware

A Ring middleware for sending notifications of unhandled exceptions is available in the com.ragnard.clj-squash.ring namespace.

(require '[com.github.ragnard.clj-squash.ring :as squash])
    
(-> handler
    (squash/wrap-squash {:api-host "http://localhost:8081"
                         :api-key "fa2818ce-5480-4aa0-87a9-43a342bf425a"
                         :environment "dev"}))

License

Copyright © 2013 Ragnar Dahlén

Distributed under the Eclipse Public License, the same as Clojure.

About

Clojure client library for the Squash bug killer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published