Module: CurrentInstance::ClassMethods

Defined in:
lib/current_instance/class_methods.rb

Instance Method Summary collapse

Instance Method Details

#currentObject

Set User.current by assigning an object:

User.current = User.first
User.current #=> #<User id: 1, name: "Flinn"...>
User.current = nil
User.current #=> nil


25
26
27
28
29
30
31
# File 'lib/current_instance/class_methods.rb', line 25

def current
  unless current_id.blank?
    Thread.current[current_name] ||= self.respond_to?(:cached_find_by_id) ?
      cached_find_by_id(current_id) :
      find_by_id(current_id)
  end
end

#current=(current) ⇒ Object



33
34
35
36
# File 'lib/current_instance/class_methods.rb', line 33

def current=(current)
  Thread.current[current_name] = current
  self.current_id = current.blank? ? nil : (current.id rescue nil)
end

#current_idObject

Set Food.current by id:

Food.current_id #=> nil
Food.current_id = 1
Food.current #=> #<Food id: 1, name: "Fondue"...>
Food.current_id = nil
Food.current #=> nil


11
12
13
# File 'lib/current_instance/class_methods.rb', line 11

def current_id
  Thread.current[current_name_id]
end

#current_id=(current_id) ⇒ Object



16
17
18
# File 'lib/current_instance/class_methods.rb', line 16

def current_id=(current_id)
  Thread.current[current_name_id] = current_id
end