Sha256: cb625184a4c2f759becd1a53141ab4dd7bb469f2b2d20f7e18d294cfb4f36d73
Contents?: true
Size: 962 Bytes
Versions: 2
Compression:
Stored size: 962 Bytes
Contents
module Rserve class Packet attr_reader :cont attr_reader :cmd ERROR_DESCRIPTIONS={ 2=>'Invalid expression', 3=>'Parse error', 65=>'Login error', 127=>'Unknown variable/method'} def initialize(cmd, cont) raise "cont [#{cont.class} - #{cont.to_s}] should respond to :length" if !cont.nil? and !cont.respond_to? :length @cmd=cmd @cont=cont end def cont_len @cont.nil? ? 0 : @cont.length end def ok? @cmd&15==1 end def error? @cmd&15==2 end def stat (@cmd>>24)&127 end def get_error_description(stat) ERROR_DESCRIPTIONS[stat] end def to_s if error? status="error:'#{get_error_description(stat)}'(#{stat})" else status="ok" end "Packet[cmd=#{@cmd},len="+((cont.nil?)?"<nil>":(""+cont.length.to_s))+", con='"+(cont.nil? ? "<nil>" : cont.pack("C*"))+"', status=#{status}]" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rserve-client-0.3.5 | lib/rserve/packet.rb |
rserve-client-0.3.3 | lib/rserve/packet.rb |