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



748
749
750
751
752
753
754
# File 'lib/upkeep/runtime.rb', line 748

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

.userObject



756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
# File 'lib/upkeep/runtime.rb', line 756

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