Sha256: 6550f0bc939c3b09b54933c8461eb6a561eaa14b7f428c3b4a6e606499590413

Contents?: true

Size: 1.18 KB

Versions: 3

Compression:

Stored size: 1.18 KB

Contents

# Morlock

Morlock turns your memcached server into a distributed, conflict-eating machine.  Rails integration is dug in.

## Usage

### Creating a new Morlock instance

#### Ruby

	require 'memcache-client'
	require 'morlock'

	mem_cache_client = MemCache.new("memcached.you.com")
	morlock = Morlock.new(mem_cache_client)

If you prefer Dalli, use that instead:

	require 'dalli'
	dc = Dalli::Client.new('localhost:11211')
	morlock = Morlock.new(dc)

#### Rails

If you're already using MemCacheStore in your Rails app, using Morlock is trivial.  Morlock will automatically use the memcached server that is backing Rails.cache.

With Bundler:

	gem 'morlock', :require => 'morlock/rails'

Or in any script after Rails has loaded:

	require 'morlock/rails'

At this point, `Rails.morlock` should be defined and available.  Use it instead of `morlock` in the examples below.

### Distributed Locking

Possible usages:

	handle_failed_lock unless morlock.lock(key) do
		# We have the lock
	end
	
	morlock.lock(key) { # We have the lock } || raise "Unable to lock!"

	morlock.lock(key, :failure => failure_proc) do
		# We have the lock
	end

	morlock.lock(key, :failure => failure_proc, :success => success_proc)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
morlock-0.0.4 README.markdown
morlock-0.0.3 README.markdown
morlock-0.0.2 README.markdown