azanar/hopper

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Build Status](https://travis-ci.org/azanar/hopper.svg)](https://travis-ci.org/azanar/hopper)
[![Dependency Status](http://img.shields.io/gemnasium/azanar/hopper.svg)](https://gemnasium.com/azanar/hopper)
[![Coverage Status](http://img.shields.io/coveralls/azanar/hopper.svg)](https://coveralls.io/r/azanar/hopper)
[![Code Climate](http://img.shields.io/codeclimate/github/azanar/hopper.svg)](https://codeclimate.com/github/azanar/hopper)
[![Gem Version](http://img.shields.io/gem/v/hopper.svg)](https://rubygems.org/gems/hopper)
[![License](http://img.shields.io/:license-mit-blue.svg)](http://azanar.mit-license.org)
[![Badges](http://img.shields.io/:badges-7/7-ff6799.svg)](https://github.com/badges/badgerbadgerbadger)


Hopper
======
A framework for task execution written around bunny.

Usable on its own, or as part of [Baler](https://github.com/azanar/baler).

Examples
--------
A Publisher:

```ruby
  channel = Hopper::Channel.new

  queue = Hopper::Queue.new("hopper-stresstest")

  publisher = queue.publisher(channel)
  
  publisher.publish(m)
```

A Listener:
```ruby
 channel = Hopper::Channel.new

 queue = Hopper::Queue.new("hopper-stresstest")
  
 listener = queue.listener(channel)

 listener.listen do |m|
          
  unless valid(m)
    m.reject
    next
  end
  
  # do some stuff
  
  m.acknowledge
end
```

TODO
----

- Add support for pluggable serialization mechanisms (MsgPack, JSON, etc.)

API Documentation
-----------------

See [RubyDoc](http://rubydoc.info/github/azanar/hopper/index)

Contributors
------------

See [Contributing](CONTRIBUTING.md) for details.

License
-------

©2015 Ed Carrel. Released under the MIT License.

See [License](LICENSE) for details.