Class: Tidewave::Tools::GrepProjectFiles
- Inherits:
-
Base
- Object
- FastMcp::Tool
- Base
- Tidewave::Tools::GrepProjectFiles
show all
- Defined in:
- lib/tidewave/tools/grep_project_files.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
file_system_tool, file_system_tool?
Class Method Details
.description ⇒ Object
14
15
16
|
# File 'lib/tidewave/tools/grep_project_files.rb', line 14
def self.description
"Searches for text patterns in files using #{ripgrep_available? ? 'ripgrep' : 'a grep variant'}."
end
|
.ripgrep_available? ⇒ Boolean
10
11
12
|
# File 'lib/tidewave/tools/grep_project_files.rb', line 10
def self.ripgrep_available?
ripgrep_executable.present?
end
|
.ripgrep_executable ⇒ Object
6
7
8
|
# File 'lib/tidewave/tools/grep_project_files.rb', line 6
def self.ripgrep_executable
@ripgrep_executable ||= `which rg`.strip
end
|
Instance Method Details
#call(pattern:, glob: "**/*", case_sensitive: false, max_results: 100) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/tidewave/tools/grep_project_files.rb', line 28
def call(pattern:, glob: "**/*", case_sensitive: false, max_results: 100)
if self.class.ripgrep_available?
execute_ripgrep(pattern, glob, case_sensitive, max_results)
else
execute_grep(pattern, glob, case_sensitive, max_results)
end
end
|