module ModelId::Base
Attributes
last_model_id[RW]
model_id_instances[RW]
model_id_mutex[RW]
Public Class Methods
included(base)
click to toggle source
# File lib/model_id/base.rb, line 20 def self.included(base) base.class_eval do class << self attr_accessor :last_model_id, :model_id_mutex, :model_id_instances end end base.extend ClassMethods base.last_model_id = 0 base.model_id_mutex = Mutex.new base.model_id_instances = {} base.prepend Ruby2Initializer if base.respond_to? :prepend end
Public Instance Methods
delete_model()
click to toggle source
# File lib/model_id/base.rb, line 16 def delete_model self.class.model_id_instances.delete @model_id end
model_id()
click to toggle source
# File lib/model_id/base.rb, line 4 def model_id @model_id end
set_next_model_id()
click to toggle source
# File lib/model_id/base.rb, line 8 def set_next_model_id self.class.model_id_mutex.synchronize do @model_id = self.class.last_model_id + 1 self.class.last_model_id = @model_id end self.class.model_id_instances[@model_id] = self end