Class: Trailblazer::Circuit::Trace::Stack

Inherits:
Object
  • Object
show all
Defined in:
lib/trailblazer/circuit/trace.rb

Overview

Mutable/stateful per design. We want a (global) stack!

Instance Method Summary collapse

Constructor Details

#initializeStack

Returns a new instance of Stack.



55
56
57
58
# File 'lib/trailblazer/circuit/trace.rb', line 55

def initialize
  @nested  = []
  @stack   = [ @nested ]
end

Instance Method Details

#<<(args) ⇒ Object



69
70
71
# File 'lib/trailblazer/circuit/trace.rb', line 69

def <<(args)
  current << args
end

#indent!Object



60
61
62
63
# File 'lib/trailblazer/circuit/trace.rb', line 60

def indent!
  current << indented = []
  @stack << indented
end

#to_aObject



73
74
75
# File 'lib/trailblazer/circuit/trace.rb', line 73

def to_a
  @nested
end

#unindent!Object



65
66
67
# File 'lib/trailblazer/circuit/trace.rb', line 65

def unindent!
  @stack.pop
end