Class: RailsInformant::BreadcrumbBuffer

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_informant/breadcrumb_buffer.rb

Constant Summary collapse

CAPACITY =
50

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBreadcrumbBuffer

Returns a new instance of BreadcrumbBuffer.



9
10
11
# File 'lib/rails_informant/breadcrumb_buffer.rb', line 9

def initialize
  @crumbs = []
end

Class Method Details

.currentObject



5
6
7
# File 'lib/rails_informant/breadcrumb_buffer.rb', line 5

def self.current
  RailsInformant::Current.breadcrumbs ||= new
end

Instance Method Details

#flushObject



24
25
26
27
28
# File 'lib/rails_informant/breadcrumb_buffer.rb', line 24

def flush
  result = @crumbs
  @crumbs = []
  result
end

#record(category:, message:, metadata: {}, duration: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/rails_informant/breadcrumb_buffer.rb', line 13

def record(category:, message:, metadata: {}, duration: nil)
  @crumbs << {
    category:,
    message:,
    metadata:,
    duration:,
    timestamp: Time.current.iso8601(3)
  }
  @crumbs.shift if @crumbs.size > CAPACITY
end