Class: Ask::Rails::Harness::Tools::SearchCodebase

Inherits:
Ask::Rails::Harness::Tool show all
Defined in:
lib/ask/rails/harness/tools/search_codebase.rb

Instance Method Summary collapse

Methods inherited from Ask::Rails::Harness::Tool

#call, #rails_root, session_id, session_id=

Instance Method Details

#execute(pattern:, path: nil) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/ask/rails/harness/tools/search_codebase.rb', line 12

def execute(pattern:, path: nil)
  search_path = (path ? rails_root.join(path) : rails_root).to_s
  escaped_pattern = pattern.gsub("'", "'\\\\''")
  escaped_path = search_path.gsub("'", "'\\\\''")
  results = `cd #{rails_root} && grep -rn '#{escaped_pattern}' #{escaped_path} 2>&1 | head -50`
  { results: results.lines.map(&:chomp), count: results.lines.count }
end