No commit activity in last 3 years
No release in over 3 years
Simple Publish/Subscribe for ruby objects
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.6
>= 0
~> 3
 Project Readme

PublishSubscribe

Simple Publish/Subscribe pattern for ruby objects. It is like ruby's Observable module, but uses channels.

Adding subscriptions is not thread-safe, but if anyone wants this just open an issue and I'll add it.

It adds a public method subscribe, and two private methods, publish and subscriptions, and an instance variable, @_subscriptions, to classes that mix in this module.

Installation

Add this line to your application's Gemfile:

gem 'publish_subscribe'

And then execute:

$ bundle

Or install it yourself as:

$ gem install publish_subscribe

Usage

class Publisher
  include PublishSubscribe

  def publish_message
    publish :channel, :argument
  end
end

publisher = Publisher.new

publisher.subscribe :channel do |argument|
  puts argument
end

publisher.publish_message
# :argument

TODO

Contributing

  1. Fork it ( https://github.com/cameron-martin/publish_subscribe/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request