lib/memcached_test/server.rb in memcached_test-0.1.0 vs lib/memcached_test/server.rb in memcached_test-1.0.0

- old
+ new

@@ -2,19 +2,20 @@ require_relative 'memcached' require_relative 'commands_format' module MemcachedTest class Server + attr_reader :server_socket + def initialize(socket_address, socket_port) @server_socket = TCPServer.open(socket_address, socket_port) @memcached = Memcached.new end def run loop{ client_connection = @server_socket.accept - #foreach client that connects Thread.start(client_connection) do |conn| puts "Connection established #{conn}" while input = conn.gets input = input.chomp @@ -58,86 +59,55 @@ client.puts ("END\r\n") elsif resultados != [] && !resultados.is_a?(Array) client.puts ("VALUE #{resultados[0]} #{resultados[1]} #{resultados[3]} #{resultado[4]}\r\n#{resultados[5]}\r\n") client.puts ("END\r\n") else - client.append ("NOT_FOUND\r\n") + client.puts ("NOT_FOUND\r\n") end when Commands_format.set - key = $~['key'] - flags = $~['flags'] - exptime = $~['exptime'] - bytes = $~['bytes'] - noreply = !$~['noreply'].nil? - data = $~['data'] - + key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~) + data = client.gets.chomp response = @memcached.set(key, flags, exptime, bytes, data) client.puts response unless noreply when Commands_format.add - key = $~['key'] - flags = $~['flags'] - exptime = $~['exptime'] - bytes = $~['bytes'] - noreply = !$~['noreply'].nil? - data = $~['data'] - + key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~) + data = client.gets.chomp response = @memcached.add(key, flags, exptime, bytes, data) client.puts response unless noreply when Commands_format.replace - key = $~['key'] - flags = $~['flags'] - exptime = $~['exptime'] - bytes = $~['bytes'] - noreply = !$~['noreply'].nil? - data = $~['data'] - + key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~) + data = client.gets.chomp response = @memcached.replace(key, flags, exptime, bytes, data) client.puts response unless noreply when Commands_format.append - key = $~['key'] - flags = $~['flags'] - exptime = $~['exptime'] - bytes = $~['bytes'] - noreply = !$~['noreply'].nil? - data = $~['data'] - - response = @memcached.append(key, flags, exptime, bytes, data) + key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~) + data = client.gets.chomp + response = @memcached.append(key, bytes, data) client.puts response unless noreply when Commands_format.prepend - key = $~['key'] - flags = $~['flags'] - exptime = $~['exptime'] - bytes = $~['bytes'] - noreply = !$~['noreply'].nil? - data = $~['data'] - - response = @memcached.prepend(key, flags, exptime, bytes, data) + key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~) + data = client.gets.chomp + response = @memcached.prepend(key, bytes, data) client.puts response unless noreply when Commands_format.cas - key = $~['key'] - flags = $~['flags'] - exptime = $~['exptime'] - bytes = $~['bytes'] - cas = $~['cas'] - noreply = !$~['noreply'].nil? - data = $~['data'] - + key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~) + data = client.gets.chomp response = @memcached.cas(key, flags, exptime, bytes, cas, data) client.puts response unless noreply when Commands_format.flush_all response = @memcached.flush_all() client.puts response if $~['noreply'].nil? else - client.puts "Invalid command, please retry" + client.puts "ERROR\r\n" end end def purge_expired_keys(interval_time) loop{ @@ -145,7 +115,16 @@ @memcached.flush_all() puts("----------- Expired keys deleted -----------") } end + def pass_parameters(reg_exp) + key = reg_exp['key'] + flags = reg_exp['flags'] unless reg_exp['command'] == 'append' || reg_exp['command'] == 'prepend' + exptime = reg_exp['exptime'] unless reg_exp['command'] == 'append' || reg_exp['command'] == 'prepend' + bytes = reg_exp['bytes'] + noreply = !reg_exp['noreply'].nil? + cas = reg_exp['cas'] if reg_exp['command'] == 'cas' + return key, flags, exptime, bytes, noreply, cas + end end end \ No newline at end of file