Class: Pronto::RubyCritic::MessageBuilder
- Inherits:
-
Object
- Object
- Pronto::RubyCritic::MessageBuilder
- Defined in:
- lib/pronto/rubycritic/message_builder.rb
Overview
Builds Pronto::Message objects for smells that overlap with added lines in the current PR. Uses a pre-computed relative-path index so lookup is O(1) per smell, not O(N*M) across patches x smells.
Instance Method Summary collapse
- #call(modules) ⇒ Object
-
#initialize(runner:, patches:, severity_level:, formatter: nil) ⇒ MessageBuilder
constructor
A new instance of MessageBuilder.
Constructor Details
#initialize(runner:, patches:, severity_level:, formatter: nil) ⇒ MessageBuilder
Returns a new instance of MessageBuilder.
11 12 13 14 15 16 17 |
# File 'lib/pronto/rubycritic/message_builder.rb', line 11 def initialize(runner:, patches:, severity_level:, formatter: nil) @runner = runner @patches = patches @severity_level = severity_level @formatter = formatter || Formatter.detect(severity: severity_level) @patch_index = build_patch_index(patches) end |
Instance Method Details
#call(modules) ⇒ Object
19 20 21 |
# File 'lib/pronto/rubycritic/message_builder.rb', line 19 def call(modules) Array(modules).flat_map { |mod| (mod) }.compact.uniq end |