Class: Bugsage::Store
- Inherits:
-
Object
- Object
- Bugsage::Store
- Defined in:
- lib/bugsage/store.rb
Constant Summary collapse
- MAX_ENTRIES =
100
Class Method Summary collapse
- .add(suggestion, context = {}, metadata = {}) ⇒ Object
- .all ⇒ Object
- .build_event(suggestion, context, metadata = {}) ⇒ Object
- .clear! ⇒ Object
- .entries ⇒ Object
- .update_at(index, suggestion, ai_error: nil) ⇒ Object
Class Method Details
.add(suggestion, context = {}, metadata = {}) ⇒ Object
9 10 11 12 13 |
# File 'lib/bugsage/store.rb', line 9 def self.add(suggestion, context = {}, = {}) event = build_event(suggestion, context, ) entries.unshift(event) entries.pop if entries.size > MAX_ENTRIES end |
.all ⇒ Object
15 16 17 |
# File 'lib/bugsage/store.rb', line 15 def self.all entries end |
.build_event(suggestion, context, metadata = {}) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/bugsage/store.rb', line 40 def self.build_event(suggestion, context, = {}) exception = [:exception] { issue: suggestion.issue, location: suggestion.location, root_cause: suggestion.root_cause, fixes: suggestion.fixes, confidence: suggestion.confidence, source: suggestion.source, ai_notes: suggestion.ai_notes, code_patch: suggestion.code_patch, ai_error: [:ai_error], exception_class: exception&.class&.name, exception_message: exception&..to_s, context: context, timestamp: Time.now.utc.iso8601 } end |
.clear! ⇒ Object
19 20 21 |
# File 'lib/bugsage/store.rb', line 19 def self.clear! @entries = [] end |
.entries ⇒ Object
23 24 25 |
# File 'lib/bugsage/store.rb', line 23 def self.entries @entries ||= [] end |
.update_at(index, suggestion, ai_error: nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/bugsage/store.rb', line 27 def self.update_at(index, suggestion, ai_error: nil) event = entries[index] return unless event event[:root_cause] = suggestion.root_cause event[:fixes] = suggestion.fixes event[:confidence] = suggestion.confidence event[:source] = suggestion.source event[:ai_notes] = suggestion.ai_notes event[:code_patch] = suggestion.code_patch event[:ai_error] = ai_error end |