Lightweight helper for publishing events to rabbitmq in a pattern consistent with Artsy's ecosystem.
Add following line to your Gemfile
gem "artsy-event_publisher"
Example initialization:
# config/initializers/artsy-event_publisher.rb
Artsy::EventPublisher.configure do |config|
config.app_id = "my-app" # identifies RabbitMQ connection
config.enabled = true # enable/disable publishing events
config.rabbitmq_url = "amqp(s)://<user>:<pass>@<host>:<port>/<vhost>" # required
config.logger = Rails.logger
end
Publishing a sample event:
Artsy::EventPublisher.publish(
"auctions", # topic
"bidder.pending_approval", # routing key
verb: "pending_approval", # action occurring
subject: {id: bidder.id.to_s, root_type: "Bidder", display: bidder.name}, # id and properties of the actor responsible for this event
object: {id: sale.id.to_s, root_type: "Sale", display: sale.name}, # id and properties of the object being acted on (created, updated, etc.)
properties: {url: "..."} # optional additional properties about this event or helpful for handling it
)
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests.
To install this gem on your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and the created tag, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/artsy/artsy-event_publisher.
The gem is available as open source under the terms of the MIT License.