Module: ModelId::Base

Defined in:
lib/model_id/base.rb

Defined Under Namespace

Modules: ClassMethods, Ruby2Initializer

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# 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

Instance Method Details

#delete_modelObject



16
17
18
# File 'lib/model_id/base.rb', line 16

def delete_model
  self.class.model_id_instances.delete @model_id
end

#model_idObject



4
5
6
# File 'lib/model_id/base.rb', line 4

def model_id
  @model_id
end

#set_next_model_idObject



8
9
10
11
12
13
14
# 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