class Groonga::Client::Request::Generic

Public Class Methods

new(parameters=nil, extensions=[]) click to toggle source
# File lib/groonga/client/request/generic.rb, line 21
def initialize(parameters=nil, extensions=[])
  @parameters = parameters
  @extensions = extensions
  extend(*@extensions) unless @extensions.empty?
end

Public Instance Methods

command_name() click to toggle source
# File lib/groonga/client/request/generic.rb, line 27
def command_name
  self.class.command_name
end
extensions(*modules, &block) click to toggle source
# File lib/groonga/client/request/generic.rb, line 68
def extensions(*modules, &block)
  modules << Module.new(&block) if block
  if modules.empty?
    self
  else
    create_request(@parameters, @extensions | modules)
  end
end
flags_parameter(name_or_names, value) click to toggle source
# File lib/groonga/client/request/generic.rb, line 40
def flags_parameter(name_or_names, value)
  if name_or_names.is_a?(Array)
    names = name_or_names
  else
    names = [name_or_names]
  end
  add_parameter(OverwriteMerger,
                FlagsParameter.new(names, value))
end
parameter(name, value) click to toggle source
# File lib/groonga/client/request/generic.rb, line 35
def parameter(name, value)
  add_parameter(OverwriteMerger,
                RequestParameter.new(name, value))
end
response() click to toggle source
# File lib/groonga/client/request/generic.rb, line 31
def response
  @reponse ||= create_response
end
to_parameters() click to toggle source
# File lib/groonga/client/request/generic.rb, line 60
def to_parameters
  if @parameters.nil?
    {}
  else
    @parameters.to_parameters
  end
end
values_parameter(name_or_names, values) click to toggle source
# File lib/groonga/client/request/generic.rb, line 50
def values_parameter(name_or_names, values)
  if name_or_names.is_a?(Array)
    names = name_or_names
  else
    names = [name_or_names]
  end
  add_parameter(OverwriteMerger,
                ValuesParameter.new(names, values))
end

Private Instance Methods

add_parameter(merger_class, parameter) click to toggle source
# File lib/groonga/client/request/generic.rb, line 78
def add_parameter(merger_class, parameter)
  merger = merger_class.new(@parameters, parameter)
  create_request(merger, @extensions)
end
create_request(parameters, extensions) click to toggle source
# File lib/groonga/client/request/generic.rb, line 83
def create_request(parameters, extensions)
  self.class.new(parameters, extensions)
end
create_response() click to toggle source
# File lib/groonga/client/request/generic.rb, line 87
def create_response
  open_client do |client|
    response = client.execute(command_name, to_parameters)
    raise ErrorResponse.new(response) unless response.success?
    response
  end
end
open_client() { |client| ... } click to toggle source
# File lib/groonga/client/request/generic.rb, line 95
def open_client
  Client.open do |client|
    yield(client)
  end
end