MandrillEvent
MandrillEvent is built on the ActiveSupport::Notifications API. Define subscribers to handle specific event types. Subscribers can be a block or an object that responds to #call.
Installation
Add it to your Gemfile
# Gemfile
gem 'mandrill_event'
And then execute:
$ bundle
Usage
Mount the engine in your routes
# config/routes.rb
mount MandrillEvent::Engine => '/mandrill'
Setup the initializer
# config/initializers/mandrill_event.rb
MandrillEvent.configure do |events|
events.subscribe 'reject', RejectHandler
end
Subscriber responds to call
# app/mandrill_handlers/reject_handler.rb
class RejectHandler
def self.call(event)
# your code here
end
end
Configure Mandrill webhooks to use your endpoint
At the Mandrill website, create a webhook that points to your server with the path /mandrill/events
. A service like Ngrok or Ultrahook can be really useful in creating a tunnel to your local server and inspecting the request payloads.
Thanks
MandrillEvent takes inspiration from is a direct rip-off of the stripe_event gem, which takes it's inspiration from Webmachine, which is inspired by Erlang. It's turtles all the way down.
TODO:
- Get it on Travis
- Write docs with RDoc/YARD
- More test coverage
- Incoming webhook requests are authenticated
- Get it on Coveralls
- Get it on Code Climate
Contributing
- Fork it ( https://github.com/[my-github-username]/mandrill_event/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