Class: BrainzLab::Reflex::Breadcrumbs

Inherits:
Object
  • Object
show all
Defined in:
lib/brainzlab/reflex/breadcrumbs.rb

Constant Summary collapse

MAX_BREADCRUMBS =
50

Instance Method Summary collapse

Constructor Details

#initializeBreadcrumbs

Returns a new instance of Breadcrumbs.



8
9
10
11
# File 'lib/brainzlab/reflex/breadcrumbs.rb', line 8

def initialize
  @breadcrumbs = []
  @mutex = Mutex.new
end

Instance Method Details

#add(message:, category: 'default', level: :info, data: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/brainzlab/reflex/breadcrumbs.rb', line 13

def add(message:, category: 'default', level: :info, data: nil)
  crumb = {
    timestamp: Time.now.utc.iso8601(3),
    message: message.to_s,
    category: category.to_s,
    level: level.to_s
  }
  crumb[:data] = data if data

  @mutex.synchronize do
    @breadcrumbs << crumb
    @breadcrumbs.shift if @breadcrumbs.size > MAX_BREADCRUMBS
  end
end

#clear!Object



32
33
34
# File 'lib/brainzlab/reflex/breadcrumbs.rb', line 32

def clear!
  @mutex.synchronize { @breadcrumbs.clear }
end

#sizeObject



36
37
38
# File 'lib/brainzlab/reflex/breadcrumbs.rb', line 36

def size
  @mutex.synchronize { @breadcrumbs.size }
end

#to_aObject



28
29
30
# File 'lib/brainzlab/reflex/breadcrumbs.rb', line 28

def to_a
  @mutex.synchronize { @breadcrumbs.dup }
end