4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/the_ruby_searcher.rb', line 4
def search(pattern, path, e = "ag", lno=false)
engine = find_engine(e)
warn(e,engine) if e != engine
if lno
case engine
when "ag"
flag = "--numbers"
when "grep"
flag = "-n"
else
flag = ""
end
else
case engine
when "ag"
flag = "--nonumbers"
else
flag = ""
end
end
if flag == ""
cmd = [engine, pattern, path]
else
cmd = [engine, pattern, path, flag]
end
out = IO.popen(cmd).read
if out != ""
if lno
out.split("\n").map{ |l| l.split(":") }.to_h
else
out.split("\n")
end
else
raise SystemCallError, "Something went wrong, check the logs."
end
end
|