public
Description: Extraction of the lock from cache-money.
Homepage:
Clone URL: git://github.com/jamesgolick/memcache-lock.git
name age message
file .document Sun Oct 11 08:35:40 -0700 2009 Initial commit to memcached-lock. [jamesgolick]
file .gitignore Sun Oct 11 09:39:39 -0700 2009 ignore gemspec [jamesgolick]
file LICENSE Sun Oct 11 09:40:26 -0700 2009 add cache-money license [jamesgolick]
file README.rdoc Sun Oct 11 09:45:11 -0700 2009 oops - leftover from older version of the instr... [jamesgolick]
file Rakefile Sun Oct 11 09:43:07 -0700 2009 put the gemcutter tasks declaration in the righ... [jamesgolick]
file VERSION Sun Oct 11 09:40:36 -0700 2009 Version bump to 0.1.0 [jamesgolick]
directory lib/ Sun Oct 11 09:22:59 -0700 2009 rename to memcache-lock [jamesgolick]
directory spec/ Sun Oct 11 09:22:59 -0700 2009 rename to memcache-lock [jamesgolick]
README.rdoc

memcache-lock

This is a pure extraction from Nick Kallen’s cache-money.

Installation

  sudo gem install memcache-lock -s http://gemcutter.org

(Note: If you already have the gemcutter gem installed, you can omit the -s part)

Usage

Instantiate the lock somewhere, like in an initializer if you’re using rails. It needs a MemCache instance.

  $cache = MemCache.new(YAML.load(File.read("/path/to/memcache/config")))
  $lock  = MemcacheLock.new($cache)

Then, wherever you’d like to lock a key, use it like this:

  $lock.synchronize("some-memcache-key") do
    # stuff that needs synchronization in here
  end

For more info, see lib/memcache-lock.rb. It’s very straightforward to read.

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.