Sha256: b9a42ff42bb22ef313771ccfa232e8336e30cfaaa1fa6fb3fe446948290754f3

Contents?: true

Size: 876 Bytes

Versions: 1

Compression:

Stored size: 876 Bytes

Contents

require 'incrementor'

# Based on http://railstips.org/blog/archives/2010/02/21/mongomapper-07-plugins/
module MongoMapper
  module Plugins
    module AutoIncrement
      extend ActiveSupport::Concern
      module ClassMethods
        def auto_increment! options = {:override => false}
          key :id2
          if(options[:override])
            class_eval { before_create class_eval { :update_auto_increment_override }}
          else
            class_eval { before_create class_eval { :update_auto_increment }}
          end
        end
      end
      private
      def update_auto_increment
        self.id2 = MongomapperId2::Incrementor[self.class.name].inc
      end
      def update_auto_increment_override
        update_auto_increment
        self.id = self.id2.to_s
      end
    end
  end
end

MongoMapper::Document.plugin(MongoMapper::Plugins::AutoIncrement)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongomapper_id2-0.0.5 lib/mongomapper_id2.rb