Class: Logtide::BreadcrumbBuffer
- Inherits:
-
Object
- Object
- Logtide::BreadcrumbBuffer
- Defined in:
- lib/logtide/breadcrumb.rb
Overview
A ring buffer of breadcrumbs, oldest first, capped at max_breadcrumbs (spec 004 section 4).
Instance Method Summary collapse
- #add(crumb) ⇒ Object
- #clear ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(max_breadcrumbs) ⇒ BreadcrumbBuffer
constructor
A new instance of BreadcrumbBuffer.
- #initialize_copy(other) ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize(max_breadcrumbs) ⇒ BreadcrumbBuffer
Returns a new instance of BreadcrumbBuffer.
37 38 39 40 |
# File 'lib/logtide/breadcrumb.rb', line 37 def initialize() @max = @crumbs = [] end |
Instance Method Details
#add(crumb) ⇒ Object
42 43 44 45 46 |
# File 'lib/logtide/breadcrumb.rb', line 42 def add(crumb) @crumbs << crumb @crumbs.shift while @crumbs.size > @max crumb end |
#clear ⇒ Object
52 53 54 |
# File 'lib/logtide/breadcrumb.rb', line 52 def clear @crumbs.clear end |
#empty? ⇒ Boolean
56 57 58 |
# File 'lib/logtide/breadcrumb.rb', line 56 def empty? @crumbs.empty? end |
#initialize_copy(other) ⇒ Object
60 61 62 63 |
# File 'lib/logtide/breadcrumb.rb', line 60 def initialize_copy(other) super @crumbs = other.to_a end |
#to_a ⇒ Object
48 49 50 |
# File 'lib/logtide/breadcrumb.rb', line 48 def to_a @crumbs.dup end |