Module: Waldit::Context

Included in:
Waldit
Defined in:
lib/waldit/context.rb

Instance Method Summary collapse

Instance Method Details

#add_context(added_context) ⇒ Object



18
19
20
# File 'lib/waldit/context.rb', line 18

def add_context(added_context)
  context&.merge!(added_context.as_json)
end

#contextObject



14
15
16
# File 'lib/waldit/context.rb', line 14

def context
  Thread.current[:waldit_context]&.last
end

#new_context(context = {}) ⇒ Object



22
23
24
25
# File 'lib/waldit/context.rb', line 22

def new_context(context = {})
  Thread.current[:waldit_context] ||= []
  Thread.current[:waldit_context].push(context.as_json)
end

#with_context(context = {}, &block) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/waldit/context.rb', line 5

def with_context(context = {}, &block)
  current_context = self.context || {}
  Thread.current[:waldit_context] ||= []
  Thread.current[:waldit_context].push(current_context.merge(context.as_json))
  block.call
ensure
  Thread.current[:waldit_context].pop
end