module OrientdbBinary::Protocols::Base

Public Instance Methods

process(socket) click to toggle source
# File lib/orientdb_binary/protocols/base.rb, line 6
def process(socket)
  write(socket)
  status = BinData::Int8.read(socket).to_i
  errors = process_errors(socket, status)
  unless errors
    constantize("#{self.class.to_s}Answer").read(socket)
  else
    return {exceptions: errors[:exceptions][0..-2]}
  end
end

Private Instance Methods

constantize(name) click to toggle source

this might go to String (as a refinment?)

# File lib/orientdb_binary/protocols/base.rb, line 28
def constantize(name)
  names = name.split('::')
  names.shift if names.empty? || names.first.empty?

  constant = Object
  names.each do |name|
    constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
  end
  constant

end
process_errors(socket, status) click to toggle source
# File lib/orientdb_binary/protocols/base.rb, line 19
def process_errors(socket, status)
  if status == 1
    errors = OrientdbBinary::Protocols::Errors.read(socket)
    return errors
  end
  return nil
end