Skip to content

bloodbath-io/bloodbath-ruby

Repository files navigation

workflow website GitHub release

Bloodbath Ruby Library

The Bloodbath Ruby library provides convenient access to the Bloodbath API from applications written in the Ruby language.

Installation

Add this line to your application's Gemfile:

gem 'bloodbath'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install bloodbath

Usage

Configuration

The library needs to be configured with your account's API key which is available in your Bloodbath Dashboard. Set Bloodbath.api_key to its value:

require 'bloodbath'
Bloodbath.api_key = 'NTI6PASMD9BQhYtRh...'

Events

# schedule an event
Bloodbath::Event.schedule(
  scheduled_for: Time.now + 60 * 60 + 5,
  headers: {},
  method: :post,
  body: "some body content",
  endpoint: 'https://api.acme.com/path'
)

# list events
Bloodbath::Event.list()

# find an event
Bloodbath::Event.find('b7ccff...')

# cancel an event
Bloodbath::Event.cancel('b7ccff...')

For more documentation about how to use Bloodbath, don't hesitate to check Bloodbath Docs.

Advanced usage

Multi-threads

If you want to schedule a lot of events at once, waiting for the response might be too slow, that's why we developped a multi-thread scheduling option for the Ruby library.

Bloodbath::Event.new(wait_for_response: false).schedule(
  scheduled_for: Time.now + 60 * 60 + 5,
  headers: {},
  method: :post,
  body: "some body content",
  endpoint: 'https://api.acme.com/path'
)

With this option, it'll schedule your events ~10 times faster, but you won't be able to receive the response directly. Instead, it'll return the spawned threads.

Verbose mode

From time to time, things don't work the way you expect. You can switch on the verbose mode to see more data regarding your calls to Bloodbath.

Bloodbath.verbose = true

For instance, when using wait_for_response: false it'll outputs the results of the threads being spawned.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto 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.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/bloodbath-io/bloodbath-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

Code of Conduct

Everyone interacting in the Bloodbath project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.