class MemcachedTest::Client

Attributes

socket[R]

Public Class Methods

new(host, port) click to toggle source
# File lib/memcached_test/client.rb, line 7
def initialize(host, port)
   @socket = TCPSocket.open(host, port)
end

Public Instance Methods

add(key, flags, exptime, bytes, noreply = '', data) click to toggle source
# File lib/memcached_test/client.rb, line 91
def add(key, flags, exptime, bytes, noreply = '', data)
   if noreply == ''
      @socket.puts("add #{key} #{flags} #{exptime} #{bytes}") 
      @socket.puts("#{data}")
   else
      @socket.puts("add #{key} #{flags} #{exptime} #{bytes} #{noreply}")
      @socket.puts("#{data}")
   end
   return @socket.gets() unless noreply == 'noreply'
end
append(key, bytes, noreply = '', data) click to toggle source
# File lib/memcached_test/client.rb, line 113
def append(key, bytes, noreply = '', data)
   if noreply == ''
      @socket.puts("append #{key} #{bytes}")
      @socket.puts("#{data}")
   else
      @socket.puts("append #{key} #{bytes} #{noreply}")
      @socket.puts("#{data}")
   end 
   return @socket.gets() unless noreply == 'noreply'
end
cas(key, flags, exptime, bytes, cas, noreply = '', data) click to toggle source
# File lib/memcached_test/client.rb, line 135
def cas(key, flags, exptime, bytes, cas, noreply = '', data)
   if noreply == ''
      @socket.puts("cas #{key} #{flags} #{exptime} #{bytes} #{cas}")
      @socket.puts("#{data}")
   else
      @socket.puts("cas #{key} #{flags} #{exptime} #{bytes} #{cas} #{noreply}")
      @socket.puts("#{data}")
   end
   return @socket.gets() unless noreply == 'noreply'
end
get(*keys) click to toggle source
# File lib/memcached_test/client.rb, line 44
def get(*keys)
   @socket.puts("get #{keys.join(' ')}")
   items = []

   loop do
      response = @socket.gets()
      items.append response
      case response
         when "NOT_FOUND\r\n"
            break
         when "END\r\n"
            break
      end
   end

   return items
end
gets(*keys) click to toggle source
# File lib/memcached_test/client.rb, line 62
def gets(*keys)
   @socket.puts("gets #{keys.join(' ')}")
   items = []

   loop do
      response = @socket.gets()
      items.append response
      case response
         when "NOT_FOUND\r\n"
            break
         when "END\r\n"
            break
      end
   end

   return items
end
listen_response() click to toggle source
# File lib/memcached_test/client.rb, line 25
def listen_response
   begin
      Thread.new do
            loop do
               response = @socket.gets.chomp
               puts "> #{response}"

               if response == 'Closing connection'  
                  @socket.close
                  break
               end
            end
         rescue IOError => e
            puts "#{e.class}: #{e.message}"
            @socket.close
      end
   end
end
prepend(key, bytes, noreply = '', data) click to toggle source
# File lib/memcached_test/client.rb, line 124
def prepend(key, bytes, noreply = '', data)
   if noreply == ''
      @socket.puts("prepend #{key} #{bytes}")
      @socket.puts("#{data}")
   else
      @socket.puts("prepend #{key} #{bytes} #{noreply}")
      @socket.puts("#{data}")
   end 
   return @socket.gets() unless noreply == 'noreply'
end
replace(key, flags, exptime, bytes, noreply = '', data) click to toggle source
# File lib/memcached_test/client.rb, line 102
def replace(key, flags, exptime, bytes, noreply = '', data)
   if noreply == ''
      @socket.puts("replace #{key} #{flags} #{exptime} #{bytes}")  
      @socket.puts("#{data}")
   else
      @socket.puts("replace #{key} #{flags} #{exptime} #{bytes} #{noreply}")  
      @socket.puts("#{data}")
   end
   return @socket.gets() unless noreply == 'noreply'
end
send_request() click to toggle source
# File lib/memcached_test/client.rb, line 11
def send_request
   puts "Please enter a command:"
   begin
      Thread.new do
            loop do
               @socket.puts $stdin.gets.chomp
            end
         rescue IOError => e
            puts "#{e.class}: #{e.message}"
            @socket.close
      end
   end
end
set(key, flags, exptime, bytes, noreply = '', data) click to toggle source
# File lib/memcached_test/client.rb, line 80
def set(key, flags, exptime, bytes, noreply = '', data)
   if noreply == ''
      @socket.puts("set #{key} #{flags} #{exptime} #{bytes}")
      @socket.puts("#{data}")
   else
      @socket.puts("set #{key} #{flags} #{exptime} #{bytes} #{noreply}")
      @socket.puts("#{data}")
   end
   return @socket.gets() unless noreply == 'noreply'
end