Mongoid Immutable Fields

Description

A simple gem that enforces immutability on selected fields.

Installation

Include the gem in your Gemfile

gem 'mongoid_immutable_fields'

Usage

Add this to your document

include Mongoid::ImmutableFields

then declare your immutable fields like so

immutable_fields :name, :reference_id

your document will look something like

class DummyDocument
  include Mongoid::Document
  include Mongoid::ImmutableFields

  field :name
  field :description
  field :reference_id

  immutable_fields :name, :reference_id

end

Now documents will not update if one of the immutable fields has changed value since initial persistence/creation. If a field is changed and attempted to be saved/updated the following error will be added to the document for the changed immutable field

is immutable and cannot be updated

Contributing to mongoid_immutable_fields

Copyright © 2011 Jeff Bozek. See LICENSE.txt for further details.