From 3ce66d34268335d88b7b4e8588bb91525396b40a Mon Sep 17 00:00:00 2001 From: Jesse ANgell Date: Sun, 6 Nov 2011 22:12:10 -0600 Subject: [PATCH] add ability to start the auto increment id at a specific valule --- README.rdoc | 6 +++--- lib/mongo_autoincrement.rb | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.rdoc b/README.rdoc index db178f1..e14b64c 100644 --- a/README.rdoc +++ b/README.rdoc @@ -10,7 +10,7 @@ include MongoMapper::Document include MongoAutoincrement - has_autoincrement :code, :zerofill=>10 + has_autoincrement :code, :zerofill=>10, :start=>3000 end @@ -19,12 +19,12 @@ > order.save => true > order.code - => "0000000008" + => "0000003008" > order2 = Order.new => # > order2.save => true > order2.code - => "0000000009" + => "0000003009" diff --git a/lib/mongo_autoincrement.rb b/lib/mongo_autoincrement.rb index 897c652..2e2fee6 100644 --- a/lib/mongo_autoincrement.rb +++ b/lib/mongo_autoincrement.rb @@ -5,6 +5,7 @@ def self.included(model) class << model attr_accessor :autoincrement_key attr_accessor :autoincrement_zerofill + attr_accessor :autoincrement_start end model.class_eval do model.extend( ClassMethods ) @@ -21,6 +22,7 @@ def has_autoincrement(source_key, options={}) self.autoincrement_key = source_key self.autoincrement_zerofill = options[:zerofill] || 0 + self.autoincrement_start = options[:start] || 1 send :include, InstanceMethods end @@ -43,7 +45,7 @@ def create_autoincrement end def get_succ - self.class.count==0 ? 1 : self.class.first(:select=>self.class.autoincrement_key.to_s, :order=>"#{self.class.autoincrement_key.to_s} desc").code.succ.to_i + self.class.count==0 ? self.class.autoincrement_start : self.class.first(:select=>self.class.autoincrement_key.to_s, :order=>"#{self.class.autoincrement_key.to_s} desc").code.succ.to_i end def is_unique(current_code)