Class: Thread

Inherits:
Object show all
Defined in:
lib/resugan/thread.rb

Instance Method Summary collapse

Instance Method Details

#pop_resugan_context(force_invoke = false) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/resugan/thread.rb', line 16

def pop_resugan_context(force_invoke = false)
  _resugan_context = @resugan_context_stack.pop
  @resugan_context = @resugan_context_stack.last

  # depending on option, only invoke if top level
  if !force_invoke && Resugan::Kernel.reuse_top_level_context?
    _resugan_context.invoke if @resugan_context_stack.find { |e| e.namespace == _resugan_context.namespace }.nil?
  elsif
    _resugan_context.invoke
  end

  _resugan_context
end

#push_resugan_context(namespace = '', force_invoke = false) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/resugan/thread.rb', line 2

def push_resugan_context(namespace = '', force_invoke = false)
  @resugan_context_stack ||= []

  namespace = namespace.to_s

  if @resugan_context.nil? || !Resugan::Kernel.reuse_top_level_context? || force_invoke
    @resugan_context = Resugan::Context.new(namespace)
  elsif @resugan_context.namespace != namespace
    @resugan_context = (@resugan_context_stack.reverse.find { |e| e.namespace == namespace }) || Resugan::Context.new(namespace)
  end

  @resugan_context_stack << @resugan_context
end

#resugan_contextObject



30
31
32
# File 'lib/resugan/thread.rb', line 30

def resugan_context
  @resugan_context
end