Sha256: b68fe0382bd4b1e0b86e08483ae6fa5e6fdced91606eef5be6c5e9d17b3492d3

Contents?: true

Size: 1.86 KB

Versions: 2

Compression:

Stored size: 1.86 KB

Contents

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

You can use identity map for all models by writing in initializer:

    class ActiveRecord::Base
      use_id_map
    end
    
To enable in rake task or script:

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

or equivalently

    Client.with_id_map do
      # all things here goes with identity map
      # not only for Client
    end

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

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

    Client.without_id_map do
      # all things here goes without identity map
      # not only for Client
    end


Copyright
=========

inspired by http://github.com/pjdavis/identity-map
Copyright (c) 2010 Sokolov Yura aka funny_falcon, released under the MIT license.

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ar-simple-idmap-0.2.2 README
ar-simple-idmap-0.2.1 README