class Ripgrep::Client

Public Class Methods

new(verbose: false) click to toggle source
# File lib/ripgrep/client.rb, line 9
def initialize(verbose: false)
  @verbose = verbose
end

Public Instance Methods

exec(*args, opts) click to toggle source
# File lib/ripgrep/client.rb, line 13
def exec(*args, opts)
  unless opts.is_a? Hash
    args << opts
    opts = {}
  end
  verbose = opts[:verbose].nil? ? @verbose : !!opts[:verbose]
  cli_options = opts[:options]&.map do |key, val|
    next unless val
    val = '' if val.is_a? TrueClass
    val = val.join if val.is_a? Array
    key = key.to_s.tr('_', '-')
    "--#{key} #{val}".strip
  end&.compact || []
  puts "cli_options: #{cli_options}" if verbose
  cli_arguments = cli_options + args
  cli_arguments << (opts[:path] || '.')
  puts "cli_arguments: #{cli_arguments}" if verbose
  Core.exec(*cli_arguments, verbose: verbose)
end
run(&block) click to toggle source
# File lib/ripgrep/client.rb, line 33
def run(&block)
  instance_eval(&block)
end

Private Instance Methods

rg(*args) click to toggle source
# File lib/ripgrep/client.rb, line 39
def rg(*args)
  return self if args.empty?
  exec(*args, verbose: @verbose)
end