Module: Ag

Extended by:
Ag
Included in:
Ag
Defined in:
lib/the_ruby_searcher.rb

Instance Method Summary collapse

Instance Method Details

#search(pattern, path, e = "ag", lno = false) ⇒ Object



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