class Drndump::Command

Public Class Methods

new() click to toggle source
# File lib/drndump/command.rb, line 33
def initialize
  @loop = Coolio::Loop.default
  @host = "localhost"
  @port = 10031
  @tag  = "droonga"
  @dataset  = "Default"
  @receiver_host = Socket.gethostname
  @receiver_port = 0
end
run(argv) click to toggle source
# File lib/drndump/command.rb, line 28
def run(argv)
  new.run(argv)
end

Public Instance Methods

run(argv) click to toggle source
# File lib/drndump/command.rb, line 43
def run(argv)
  parse_command_line_arguments!(argv)

  error_message = dump

  if error_message
    $stderr.puts(error_message)
    false
  else
    true
  end
end

Private Instance Methods

create_option_parser() click to toggle source
# File lib/drndump/command.rb, line 62
def create_option_parser
  parser = OptionParser.new
  parser.version = VERSION

  parser.separator("")
  parser.separator("Connect:")
  parser.on("--host=HOST",
            "Host name to be connected.",
            "(#{@host})") do |host|
    @host = host
  end
  parser.on("--port=PORT", Integer,
            "Port number to be connected.",
            "(#{@port})") do |port|
    @port = port
  end
  parser.on("--tag=TAG",
            "Tag name to be used to communicate with Droonga system.",
            "(#{@tag})") do |tag|
    @tag = tag
  end

  parser.separator("")
  parser.separator("Data:")
  parser.on("--dataset=DATASET",
            "Dataset to be dumped.",
            "(#{@dataset})") do |dataset|
    @dataset = dataset
  end

  parser.separator("")
  parser.separator("Droonga protocol:")
  parser.on("--receiver-host=HOST",
            "Host name to be received a response from Droonga engine.",
            "(#{@receiver_host})") do |host|
    @receiver_host = host
  end
  parser.on("--receiver-port=PORT", Integer,
            "Port number to be received a response from Droonga engine.",
            "(#{@receiver_port})") do |port|
    @receiver_port = port
  end

  parser
end
dump() click to toggle source
# File lib/drndump/command.rb, line 119
def dump
  @dumper = DumpClient.new(dumper_params)
  dump_options = {
    :backend => :coolio,
    :loop    => @loop,
  }
  @dumper.run(dump_options) do |message|
    puts(JSON.pretty_generate(message))
  end
  @loop.run
  @dumper.error_message
end
dumper_params() click to toggle source
# File lib/drndump/command.rb, line 108
def dumper_params
  {
    :host          => @host,
    :port          => @port,
    :tag           => @tag,
    :dataset       => @dataset,
    :receiver_host => @receiver_host,
    :receiver_port => @receiver_port,
  }
end
parse_command_line_arguments!(argv) click to toggle source
# File lib/drndump/command.rb, line 57
def parse_command_line_arguments!(argv)
  parser = create_option_parser
  parser.parse!(argv)
end