Class: Bugsage::Suggestion
- Inherits:
-
Object
- Object
- Bugsage::Suggestion
- Defined in:
- lib/bugsage/suggestion.rb
Constant Summary collapse
- SOURCES =
%i[rules ai hybrid].freeze
Instance Attribute Summary collapse
-
#ai_notes ⇒ Object
readonly
Returns the value of attribute ai_notes.
-
#code_patch ⇒ Object
readonly
Returns the value of attribute code_patch.
-
#confidence ⇒ Object
readonly
Returns the value of attribute confidence.
-
#fixes ⇒ Object
readonly
Returns the value of attribute fixes.
-
#issue ⇒ Object
readonly
Returns the value of attribute issue.
-
#location ⇒ Object
readonly
Returns the value of attribute location.
-
#root_cause ⇒ Object
readonly
Returns the value of attribute root_cause.
-
#source ⇒ Object
readonly
Returns the value of attribute source.
Instance Method Summary collapse
- #ai_enhanced? ⇒ Boolean
- #code_fix ⇒ Object
-
#initialize(issue:, location:, root_cause:, fixes:, confidence:, source: :rules, ai_notes: nil, code_patch: nil, code_fix: nil) ⇒ Suggestion
constructor
A new instance of Suggestion.
- #with_ai_enhancement(root_cause:, fixes:, confidence:, ai_notes: nil, code_patch: nil) ⇒ Object
Constructor Details
#initialize(issue:, location:, root_cause:, fixes:, confidence:, source: :rules, ai_notes: nil, code_patch: nil, code_fix: nil) ⇒ Suggestion
Returns a new instance of Suggestion.
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/bugsage/suggestion.rb', line 9 def initialize(issue:, location:, root_cause:, fixes:, confidence:, source: :rules, ai_notes: nil, code_patch: nil, code_fix: nil) @issue = issue @location = location @root_cause = root_cause @fixes = fixes @confidence = confidence @source = normalize_source(source) @ai_notes = ai_notes @code_patch = normalize_code_patch(code_patch, code_fix) end |
Instance Attribute Details
#ai_notes ⇒ Object (readonly)
Returns the value of attribute ai_notes.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def ai_notes @ai_notes end |
#code_patch ⇒ Object (readonly)
Returns the value of attribute code_patch.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def code_patch @code_patch end |
#confidence ⇒ Object (readonly)
Returns the value of attribute confidence.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def confidence @confidence end |
#fixes ⇒ Object (readonly)
Returns the value of attribute fixes.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def fixes @fixes end |
#issue ⇒ Object (readonly)
Returns the value of attribute issue.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def issue @issue end |
#location ⇒ Object (readonly)
Returns the value of attribute location.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def location @location end |
#root_cause ⇒ Object (readonly)
Returns the value of attribute root_cause.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def root_cause @root_cause end |
#source ⇒ Object (readonly)
Returns the value of attribute source.
7 8 9 |
# File 'lib/bugsage/suggestion.rb', line 7 def source @source end |
Instance Method Details
#ai_enhanced? ⇒ Boolean
25 26 27 |
# File 'lib/bugsage/suggestion.rb', line 25 def ai_enhanced? %i[hybrid ai].include?(source) end |
#code_fix ⇒ Object
21 22 23 |
# File 'lib/bugsage/suggestion.rb', line 21 def code_fix CodePatch.preview_for(@code_patch) end |
#with_ai_enhancement(root_cause:, fixes:, confidence:, ai_notes: nil, code_patch: nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/bugsage/suggestion.rb', line 29 def with_ai_enhancement(root_cause:, fixes:, confidence:, ai_notes: nil, code_patch: nil) self.class.new( issue: issue, location: location, root_cause: root_cause, fixes: fixes, confidence: confidence, source: :hybrid, ai_notes: ai_notes, code_patch: code_patch || @code_patch ) end |