Class: Upkeep::Runtime::Current

Inherits:
Object
  • Object
show all
Defined in:
lib/upkeep/runtime.rb

Constant Summary collapse

THREAD_KEY =
:upkeep_current_user

Class Method Summary collapse

Class Method Details

.set(user:) ⇒ Object



723
724
725
726
727
728
729
# File 'lib/upkeep/runtime.rb', line 723

def set(user:)
  previous = Thread.current[THREAD_KEY]
  Thread.current[THREAD_KEY] = user
  yield
ensure
  Thread.current[THREAD_KEY] = previous
end

.userObject



731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
# File 'lib/upkeep/runtime.rb', line 731

def user
  user = Thread.current[THREAD_KEY]
  return user unless Observation.recording?

  dependency = Dependencies::Identity.new(
    source: "Current.user",
    key: "id",
    value: user&.id,
    metadata: {
      model: user&.class&.name,
      table: user&.class&.table_name,
      id: user&.id
    }.compact
  )

  Observation.record_dependency(dependency)
  user
end