Build Status Coverage Status

Builds method chains such that you can execute functions inside of a predefined set of callbacks.


Add this line to your application's Gemfile:

gem 'hollaback'

And then execute:

$ bundle

Or install it yourself as:

$ gem install hollaback


Sometimes you want to execute code in the context of hooks. With this gem you can build before, after, and around callbacks that are executed in the context of the given object. For befores and afters you can use either symbols are procs. For arounds you can use symbols.

class Callbacker
  def say_hello
    puts 'Hello!'

  def say_goodbye
    puts 'Goodbye!'

  def say(&block)
    puts 'speaking... '
    puts yield
    puts '...done.'

require 'hollaback'
chain = Hollaback::Chain.new

chain.before :say_hello
chain.before { puts 'How are you?' }
chain.after :say_goodbye
chain.around :say

chain.compile { '- Hollaback' }.call(Callbacker.new)


After checking out the repo, run bin/setup to install dependencies. Then, run rake test 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 tags, and push the .gem file to rubygems.org.


Bug reports and pull requests are welcome on GitHub at https://github.com/localytics/hollaback.


The gem is available as open source under the terms of the MIT License.