Class: Tidewave::Tools::GrepProjectFiles

Inherits:
Base
  • Object
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

.descriptionObject



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

Returns:

  • (Boolean)


10
11
12
# File 'lib/tidewave/tools/grep_project_files.rb', line 10

def self.ripgrep_available?
  ripgrep_executable.present?
end

.ripgrep_executableObject



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