- Drop support for Rails < 7.0 and Ruby < 3.0
- #120 Fixes missing method from middleware in Rails 7
-
#105 Add support for module/class names to be passed to
Handler.new
andRouter#draw
to allow routes to be defined without loading the routes constants, which makes using Zeitwerk much easier. -
Add Ruby 3 support
- Remove Ruby 2.4 and 2.5 support
- #90 Instrument status
0
instead of500
when Coach::Handler catches an exception
- #68 Add
coach
CLI and add documentation to README
-
#79 RequestSerializer will now return the 'http_content_type' and 'http_content_length' filtered headers.
-
#75 Documentation update.
-
#70 The following deprecated event names have been removed:
coach.handler.start
coach.middleware.start
coach.middleware.finish
coach.handler.finish
coach.request
-
#56 Support for Ruby 2.2 and 2.3 has been dropped. See our compatibility policy for more information.
-
#59 Request data included in the
request.coach
event includes asession_ip
field which replaces the erroneously namedsession_id
. The latter is deprecated and will be removed in a future release. -
#60 Add
Middleware.requires?
, which behaves likeMiddleware.provides?
but for requirements. -
#52 Add
duration_seconds
to statistic logging. Theduration
field is now deprecated and will be removed in a future release.
- #41 Ruby versions before 2.1 are no longer supported.
- #29 To use Coach's included matchers
in RSpec, you should now
require coach/rspec
.Coach.require_matchers!
is deprecated and will be removed in a future version. - #47 If you're using Coach's support for
instrumentation with
ActiveSupport::Notifications
, the event names Coach publishes have changed to be more consistent with other libraries. The previous names will work for now, but will be removed in a future version. The changes are as follows:
Before | After |
---|---|
coach.handler.start | start_handler.coach |
coach.middleware.start | start_middleware.coach |
coach.middleware.finish | finish_middleware.coach |
coach.handler.finish | finish_handler.coach |
coach.request | request.coach |
- #26 Add
started_at
to the request event metadata.
- #24 Use ActiveSupport.instrument for coach.handler.finish event. Potentially breaking change as the coach.handler.finish subscribers may trigger twice, depending on how users have subscribed to them.
- #22 Publish ActiveSupport notifications even on errors
- #16 Fix middleware lookup issue in router
- #15 Clean up
Coach::Handler#inspect
- #13 Add support for Rails 5.
- #10 Removed a dependency that Coach's RSpec matchers had on Rails'
.third
array method.
Coach::Router.new
now accepts aActionDispatch::Routing::Mapper
, rather than aRails::Application
. This means that when initialising aCoach::Router
from within aroutes.draw
block, you may now passself
to the router, preserving surrounding context (e.g. block-level scopes).
- Allow Handler to take a config hash, just like Middleware
- Allow config values to be inherited
- Diagramatic errors of missing requirements
- Logging of metadata with ActiveSupport notifications
Initial public release. This library is in beta until it hits 1.0, so backwards incompatible changes may be made in minor version releases.