class Groonga::Client::CommandLine::Runner

Public Class Methods

new(client) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 21
def initialize(client)
  @client = client
end

Public Instance Methods

run(&block) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 25
def run(&block)
  catch do |tag|
    @abort_tag = tag
    run_internal(&block)
  end
end

Private Instance Methods

abort_run(message) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 33
def abort_run(message)
  $stderr.puts(message)
  throw(@abort_tag, false)
end
column_create(table_name, name, flags, type, source) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 66
def column_create(table_name, name, flags, type, source)
  execute_command(:column_create,
                  :table => table_name,
                  :name => name,
                  :flags => flags,
                  :type => type,
                  :source => source).body
end
column_create_similar(table_name, column_name, base_column_name) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 75
def column_create_similar(table_name, column_name, base_column_name)
  if object_exist?(:schema)
    info = execute_command(:schema)["#{table_name}.#{base_column_name}"]
    arguments = info.command.arguments.merge("name" => column_name)
    # For workaround Groonga < 7.0.6
    if arguments.key?("sources")
      arguments["source"] = arguments["sources"]
    end
    execute_command(:column_create, arguments).body
  else
    base_column = column_list(table_name).find do |column|
      column.name == base_column_name
    end
    range = base_column.range
    source_columns = base_column.sources.collect do |source|
      if source.include?(".")
        source.split(".", 2)[1]
      else
        "_key"
      end
    end
    flags = base_column.flags.dup
    flags.delete("PERSISTENT")
    column_create(table_name,
                  column_name,
                  flags.join("|"),
                  range,
                  source_columns.join(","))
  end
end
column_list(table) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 62
def column_list(table)
  execute_command(:column_list, :table => table)
end
column_remove(table, column) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 106
def column_remove(table, column)
  execute_command(:column_remove,
                  :table => table,
                  :name => column).body
end
column_rename(table, name, new_name) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 112
def column_rename(table, name, new_name)
  execute_command(:column_rename,
                  :table => table,
                  :name => name,
                  :new_name => new_name).body
end
config_get(key) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 46
def config_get(key)
  execute_command(:config_get, :key => key).body
end
config_set(key, value) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 50
def config_set(key, value)
  execute_command(:config_set, :key => key, :value => value).body
end
execute_command(name, arguments={}) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 38
def execute_command(name, arguments={})
  response = @client.execute(name, arguments)
  unless response.success?
    abort_run("Failed to run #{name}: #{response.inspect}")
  end
  response
end
object_exist?(name) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 54
def object_exist?(name)
  execute_command(:object_exist, :name => name).body
end
select(table, arguments={}) click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 119
def select(table, arguments={})
  execute_command(:select,
                  arguments.merge(:table => table))
end
table_list() click to toggle source
# File lib/groonga/client/command-line/runner.rb, line 58
def table_list
  execute_command(:table_list)
end