Sha256: 2908c76a21e5547eb054f5dc73afc38110cfa23e1635c7f3fc2426bdd7a9da52

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

= Synchronizable

Synchronizable is a gem that provides an easy module-based mechanism
for making any object thread-safe with an instance-level lock. This
gem was originally inspired from Mike Perham's dalli gem, which provides
a ThreadSafe module for his memcached client. However, that solution
is not currently generic. This gem attempts to provide a generic solution
that can work with any object (including classes/modules) in your system.

== Installation

Synchronizable is available as a RubyGem:

    gem install synchronizable

== Examples

    class Foo
      def bar
      end

      def baz
      end
    end

    foo = Foo.new
    # the foo instance now has all methods synchronized / thread-safe
    foo.extend(Synchronizable)

    # note that classes are objects in Ruby and can also be synchronized
    class Bar
      def self.foo
      end
    end

    # only class/singleton methods will become synchronized
    Bar.extend(Synchronizable)

== Note on Patches/Pull Requests

* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a future version unintentionally.
* Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.

== Authors

* Ryan LeCompte

== Credits

* Mike Perham (inspired from ThreadSafety module in https://github.com/mperham/dalli)

== Copyright

Copyright (c) 2011 Ryan LeCompte. See LICENSE for
further details.

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
synchronizable-0.0.1 README.rdoc