Class: Observable::Persistence::TraceRepo
- Inherits:
-
Object
- Object
- Observable::Persistence::TraceRepo
- Includes:
- Enumerable
- Defined in:
- lib/observable/persistence/trace_repo.rb
Instance Method Summary collapse
- #each(&block) ⇒ Object
- #empty?(&block) ⇒ Boolean
- #find_one!(&block) ⇒ Object
-
#initialize(spans:) ⇒ TraceRepo
constructor
A new instance of TraceRepo.
- #raise_none_found ⇒ Object
- #raise_too_many_found ⇒ Object
- #root! ⇒ Object
Constructor Details
#initialize(spans:) ⇒ TraceRepo
Returns a new instance of TraceRepo.
8 9 10 |
# File 'lib/observable/persistence/trace_repo.rb', line 8 def initialize(spans:) @traces = spans.group_by(&:hex_trace_id).map { |id, spandatas| Trace.from_id_and_spandatas(id:, spandatas:) } end |
Instance Method Details
#each(&block) ⇒ Object
12 13 14 |
# File 'lib/observable/persistence/trace_repo.rb', line 12 def each(&block) @traces.each(&block) end |
#empty?(&block) ⇒ Boolean
20 21 22 |
# File 'lib/observable/persistence/trace_repo.rb', line 20 def empty?(&block) count(&block).zero? end |
#find_one!(&block) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/observable/persistence/trace_repo.rb', line 24 def find_one!(&block) if one?(&block) find(&block) elsif empty?(&block) raise_none_found else raise_too_many_found end end |
#raise_none_found ⇒ Object
34 35 36 |
# File 'lib/observable/persistence/trace_repo.rb', line 34 def raise_none_found raise ArgumentError, "No traces found" end |
#raise_too_many_found ⇒ Object
38 39 40 |
# File 'lib/observable/persistence/trace_repo.rb', line 38 def raise_too_many_found raise ArgumentError, "Multiple traces found" end |
#root! ⇒ Object
16 17 18 |
# File 'lib/observable/persistence/trace_repo.rb', line 16 def root! find_one!(&:root?) end |