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_model ⇒ Object
16
17
18
|
# File 'lib/model_id/base.rb', line 16
def delete_model
self.class.model_id_instances.delete @model_id
end
|
#model_id ⇒ Object
4
5
6
|
# File 'lib/model_id/base.rb', line 4
def model_id
@model_id
end
|
#set_next_model_id ⇒ Object
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
|