Skip to content

Commit

Permalink
Merge pull request #69 from rootstrap/develop
Browse files Browse the repository at this point in the history
Release 0.3.0
  • Loading branch information
t-romani committed Jun 10, 2020
2 parents 6b666a5 + aa4939a commit a09db62
Show file tree
Hide file tree
Showing 69 changed files with 1,861 additions and 258 deletions.
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence, they will be
# requested for review when someone opens a pull request.
* @brunvez @t-romani @martinjaimem
4 changes: 4 additions & 0 deletions .reek.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ detectors:
exclude:
- ExceptionHunter::Middleware::RequestHunter#catch_prey
- ExceptionHunter::Middleware::SidekiqHunter#track_exception
- ExceptionHunter::DashboardPresenter#calculate_tabs_counts

InstanceVariableAssumption:
enabled: false
Expand Down Expand Up @@ -84,6 +85,9 @@ detectors:
- initialize
max_statements: 12

TooManyConstants:
enabled: false

UncommunicativeMethodName:
enabled: true
exclude: []
Expand Down
136 changes: 68 additions & 68 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
GIT
remote: https://github.com/rspec/rspec-core
revision: 464b8488e80a90c5c1a76b476c1b814f79fc8efb
revision: 9f55fafe62ea367a4801ebed2ca19cf6dfdceb39
specs:
rspec-core (3.10.0.pre)
rspec-support (= 3.10.0.pre)

GIT
remote: https://github.com/rspec/rspec-expectations
revision: 7b7fecf35e3a93d74893020f55faa62901fdf6d0
revision: a7205975dcda3f53466ba5952f7dec8ac452e18c
specs:
rspec-expectations (3.10.0.pre)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (= 3.10.0.pre)

GIT
remote: https://github.com/rspec/rspec-mocks
revision: a0005a15cc092c7cde75a8429f2da6704235488e
revision: 1728885f65b25a9676c5ce54133ef8a1283e2e0d
specs:
rspec-mocks (3.10.0.pre)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (= 3.10.0.pre)

GIT
remote: https://github.com/rspec/rspec-support
revision: 0e322b49c412947c306d394fdaa506d7d830f1cd
revision: 6553911974ee93855008f8ff41c26cea6652d74d
specs:
rspec-support (3.10.0.pre)

Expand All @@ -36,70 +36,70 @@ PATH
GEM
remote: https://rubygems.org/
specs:
actioncable (6.0.2.2)
actionpack (= 6.0.2.2)
actioncable (6.0.3.1)
actionpack (= 6.0.3.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (6.0.2.2)
actionpack (= 6.0.2.2)
activejob (= 6.0.2.2)
activerecord (= 6.0.2.2)
activestorage (= 6.0.2.2)
activesupport (= 6.0.2.2)
actionmailbox (6.0.3.1)
actionpack (= 6.0.3.1)
activejob (= 6.0.3.1)
activerecord (= 6.0.3.1)
activestorage (= 6.0.3.1)
activesupport (= 6.0.3.1)
mail (>= 2.7.1)
actionmailer (6.0.2.2)
actionpack (= 6.0.2.2)
actionview (= 6.0.2.2)
activejob (= 6.0.2.2)
actionmailer (6.0.3.1)
actionpack (= 6.0.3.1)
actionview (= 6.0.3.1)
activejob (= 6.0.3.1)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (6.0.2.2)
actionview (= 6.0.2.2)
activesupport (= 6.0.2.2)
actionpack (6.0.3.1)
actionview (= 6.0.3.1)
activesupport (= 6.0.3.1)
rack (~> 2.0, >= 2.0.8)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (6.0.2.2)
actionpack (= 6.0.2.2)
activerecord (= 6.0.2.2)
activestorage (= 6.0.2.2)
activesupport (= 6.0.2.2)
actiontext (6.0.3.1)
actionpack (= 6.0.3.1)
activerecord (= 6.0.3.1)
activestorage (= 6.0.3.1)
activesupport (= 6.0.3.1)
nokogiri (>= 1.8.5)
actionview (6.0.2.2)
activesupport (= 6.0.2.2)
actionview (6.0.3.1)
activesupport (= 6.0.3.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (6.0.2.2)
activesupport (= 6.0.2.2)
activejob (6.0.3.1)
activesupport (= 6.0.3.1)
globalid (>= 0.3.6)
activemodel (6.0.2.2)
activesupport (= 6.0.2.2)
activerecord (6.0.2.2)
activemodel (= 6.0.2.2)
activesupport (= 6.0.2.2)
activestorage (6.0.2.2)
actionpack (= 6.0.2.2)
activejob (= 6.0.2.2)
activerecord (= 6.0.2.2)
activemodel (6.0.3.1)
activesupport (= 6.0.3.1)
activerecord (6.0.3.1)
activemodel (= 6.0.3.1)
activesupport (= 6.0.3.1)
activestorage (6.0.3.1)
actionpack (= 6.0.3.1)
activejob (= 6.0.3.1)
activerecord (= 6.0.3.1)
marcel (~> 0.3.1)
activesupport (6.0.2.2)
activesupport (6.0.3.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2)
zeitwerk (~> 2.2, >= 2.2.2)
ast (2.4.0)
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
ice_nine (~> 0.11.0)
thread_safe (~> 0.3, >= 0.3.1)
bcrypt (3.1.13)
brakeman (4.8.0)
brakeman (4.8.2)
builder (3.2.4)
byebug (11.1.1)
byebug (11.1.3)
code_analyzer (0.5.1)
sexp_processor
codeclimate-engine-rb (0.4.1)
Expand All @@ -122,10 +122,10 @@ GEM
equalizer (0.0.11)
erubi (1.9.0)
erubis (2.7.0)
factory_bot (5.1.2)
factory_bot (5.2.0)
activesupport (>= 4.2.0)
factory_bot_rails (5.1.1)
factory_bot (~> 5.1.0)
factory_bot_rails (5.2.0)
factory_bot (~> 5.2.0)
railties (>= 4.2.0)
globalid (0.4.2)
activesupport (>= 4.2.0)
Expand All @@ -135,25 +135,25 @@ GEM
jaro_winkler (1.5.4)
json (2.3.0)
kwalify (0.7.2)
loofah (2.4.0)
loofah (2.5.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
mini_mime (>= 0.1.1)
marcel (0.3.3)
mimemagic (~> 0.3.2)
method_source (1.0.0)
mimemagic (0.3.4)
mimemagic (0.3.5)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
minitest (5.14.0)
minitest (5.14.1)
nio4r (2.5.2)
nokogiri (1.10.9)
mini_portile2 (~> 2.4.0)
orm_adapter (0.5.0)
pagy (3.8.1)
parallel (1.19.1)
parser (2.7.0.5)
parser (2.7.1.3)
ast (~> 2.4.0)
pg (1.2.3)
psych (3.1.0)
Expand All @@ -162,20 +162,20 @@ GEM
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (6.0.2.2)
actioncable (= 6.0.2.2)
actionmailbox (= 6.0.2.2)
actionmailer (= 6.0.2.2)
actionpack (= 6.0.2.2)
actiontext (= 6.0.2.2)
actionview (= 6.0.2.2)
activejob (= 6.0.2.2)
activemodel (= 6.0.2.2)
activerecord (= 6.0.2.2)
activestorage (= 6.0.2.2)
activesupport (= 6.0.2.2)
rails (6.0.3.1)
actioncable (= 6.0.3.1)
actionmailbox (= 6.0.3.1)
actionmailer (= 6.0.3.1)
actionpack (= 6.0.3.1)
actiontext (= 6.0.3.1)
actionview (= 6.0.3.1)
activejob (= 6.0.3.1)
activemodel (= 6.0.3.1)
activerecord (= 6.0.3.1)
activestorage (= 6.0.3.1)
activesupport (= 6.0.3.1)
bundler (>= 1.3.0)
railties (= 6.0.2.2)
railties (= 6.0.3.1)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.4)
actionpack (>= 5.0.1.x)
Expand All @@ -194,9 +194,9 @@ GEM
json
require_all (~> 3.0)
ruby-progressbar
railties (6.0.2.2)
actionpack (= 6.0.2.2)
activesupport (= 6.0.2.2)
railties (6.0.3.1)
actionpack (= 6.0.3.1)
activesupport (= 6.0.3.1)
method_source
rake (>= 0.8.7)
thor (>= 0.20.3, < 2.0)
Expand All @@ -214,7 +214,7 @@ GEM
actionpack (>= 5.0)
railties (>= 5.0)
rexml (3.2.4)
rspec-rails (4.0.0)
rspec-rails (4.0.1)
actionpack (>= 4.2)
activesupport (>= 4.2)
railties (>= 4.2)
Expand Down Expand Up @@ -252,7 +252,7 @@ GEM
sprockets (>= 3.0.0)
thor (1.0.1)
thread_safe (0.3.6)
tzinfo (1.2.6)
tzinfo (1.2.7)
thread_safe (~> 0.1)
unicode-display_width (1.6.1)
virtus (1.0.5)
Expand All @@ -262,9 +262,9 @@ GEM
equalizer (~> 0.0, >= 0.0.9)
warden (1.2.8)
rack (>= 2.0.6)
websocket-driver (0.7.1)
websocket-driver (0.7.2)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.4)
websocket-extensions (0.1.5)
zeitwerk (2.3.0)

PLATFORMS
Expand Down
35 changes: 29 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
# ExceptionHunter
Short description and motivation.

## Usage
How to use my plugin.
![Index screenshot](doc/screenshot.png)

Exception Hunter is a Rails engine meant to track errors in your Rails project. It works
by using your Postgres database to save errors with their corresponding metadata (like backtrace
or environment data at the time of failure).

To do so we hook to various points of your application where we can rescue from errors, track and
then re-raise those errors so they are handled normally. As such, the gem does not conflict with any
other service so you can have your favorite error tracking service running in parallel with Exception Hunter
while you decide which you like best.

## Motivation

Error tracking is one of the most important tools a developer can have in their toolset. As such
we think it'd be nice to provide a way for everyone to have it in their project, be it a personal
project, and MVP or something else.

## Installation
Add Exception Hunter to your application's Gemfile:

```ruby
gem 'exception_hunter', '~> 0.2.0'
gem 'exception_hunter', '~> 0.3.0'
```

You may also need to add [Devise](https://github.com/heartcombo/devise) to your Gemfile
Expand All @@ -32,8 +45,18 @@ you can run the command with the `--skip-users` flag.
Additionally it should add the 'ExceptionHunter.routes(self)' line to your routes, which means you can go to
`/exception_hunter/errors` in your browser and start enjoying some good old fashioned exception tracking!

## Contributing
Contribution directions go here.
## Stale data

You can get rid of stale errors by running the rake task to purge them:

```bash
$ rake exception_hunter:purge_errors
```

We recommend you run this task once in a while to de-clutter your DB, using a recurring tasks once
a week would be ideal. You can also purge errors by running `ExceptionHunter::ErrorReaper.purge`.

The time it takes for an error to go stale defaults to 45 days but it's configurable via the initializer.

## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
Expand Down

0 comments on commit a09db62

Please sign in to comment.