Class: RailsAiBridge::Tools::SearchCode::RubySearch
- Inherits:
-
Object
- Object
- RailsAiBridge::Tools::SearchCode::RubySearch
- Defined in:
- lib/rails_ai_bridge/tools/search_code/ruby_search.rb
Overview
Executes codebase searches using Ruby fallback.
Defined Under Namespace
Classes: FileProcessor, SearchParams
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(search_params) ⇒ RubySearch
constructor
A new instance of RubySearch.
Constructor Details
#initialize(search_params) ⇒ RubySearch
Returns a new instance of RubySearch.
69 70 71 |
# File 'lib/rails_ai_bridge/tools/search_code/ruby_search.rb', line 69 def initialize(search_params) @params = SearchParams.new(**search_params.slice(:pattern, :search_path, :file_type, :max_results, :root)) end |
Instance Method Details
#call ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/rails_ai_bridge/tools/search_code/ruby_search.rb', line 73 def call results = [] regex = Regexp.new(@params.pattern, Regexp::IGNORECASE, timeout: 2) processor = FileProcessor.new(regex, results, @params.max_results, @params.root) Dir.glob(ruby_glob).each do |file| break if processor.process(file) == :full rescue StandardError next end results rescue RegexpError => error [{ file: 'error', line_number: 0, content: "Invalid pattern: #{error.}" }] end |