Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A simple implementation of an Identity Mapper for Active Record.
Ruby
tag: v0.1.2

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
COPYING
README
Rakefile
VERSION
init.rb
install.rb

README

IdentityMap
===========

Adds simple hand controlled identity map for ActiveRecord.

Installing
==========

in Rails 2.3 in config/environment.rb

    config.gem 'ar-simple-idmap', :lib => 'identity_map'
    
in Rails 3 in Gemfile

    gem 'ar-simple-idmap', :require => 'identity_map'

Enabling
========    
    
To enable in ApplicationController (it is not enabled by default).

    class ApplicationController < ActionController::Base
      use_identity_map #(installs around filter)
      # or use_identity_map :only=>[:index, :show]
      # or use_identity_map :except=>[:update]
    end
    
If you decide to disable filter in sub controllers:

    class ClientController < ApplicationController
      dont_use_identity_map :only=>[:save, :update, :messy_action]
    end

Then you should enable identity map for each model class individually:

    class TarifPlan < ActiveRecord::Base
      use_id_map
      has_many :clients
    end
    
    class Client < ActiveRecord::Base
      use_id_map
      belongs_to :tarif_plan
    end
    
To enable in rake task or script:

    ActiveRecord.with_id_map do
      # all things here goes with identity map
    end

If you found that identity logic does wrong thing in some particular place,
you could temporary disable it:

    ActiveRecord.without_id_map do
      # all things here goes without identity map
    end


Copyright
=========

inspired by http://github.com/pjdavis/identity-map
Copyright (c) 2010 Sokolov Yura aka funny_falcon, released under the MIT license.
Something went wrong with that request. Please try again.