class GroongaQueryLog::Command::DetectMemoryLeak

Public Class Methods

new() click to toggle source
# File lib/groonga-query-log/command/detect-memory-leak.rb, line 25
def initialize
  @options = MemoryLeakDetector::Options.new
end

Public Instance Methods

run(command_line) click to toggle source
# File lib/groonga-query-log/command/detect-memory-leak.rb, line 29
def run(command_line)
  input_paths = create_parser.parse(command_line)
  detector = MemoryLeakDetector.new(@options)
  input_paths.each do |input_path|
    File.open(input_path) do |input|
      detector.detect(input)
    end
  end
  true
end

Private Instance Methods

create_parser() click to toggle source
# File lib/groonga-query-log/command/detect-memory-leak.rb, line 41
def create_parser
  parser = OptionParser.new
  parser.version = VERSION
  parser.banner += " QUERY_LOG"

  parser.separator("")
  parser.separator("Options:")

  parser.on("--host=HOST",
            "Host name or IP address of groonga server",
            "[#{@options.host}]") do |host|
    @options.host = host
  end

  parser.on("--port=PORT", Integer,
            "Port number of groonga server",
            "[#{@options.port}]") do |port|
    @options.port = port
  end

  available_protocols = [:gqtp, :http]
  available_protocols_label = "[#{available_protocols.join(', ')}]"
  parser.on("--protocol=PROTOCOL", available_protocols,
            "Protocol of groonga server",
            available_protocols_label) do |protocol|
    @options.protocol = protocol
  end

  parser.on("--pid=PID",
            "The PID of groonga server",
            "[#{@options.pid}]") do |pid|
    @options.pid = pid
  end

  parser.on("--n-tries=N", Integer,
            "The number of the same request tries",
            "[#{@options.n_tries}]") do |n|
    @options.n_tries = n
  end

  parser.on("--[no-]force-disable-cache",
            "Force disable cache of select command by cache=no parameter",
            "[#{@options.force_disable_cache?}]") do |boolean|
    @options.force_disable_cache = boolean
  end
end