- Timestamp:
- 02/01/08 08:25:46 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activesupport/lib/active_support/vendor/memcache-client-1.5.0/memcache.rb
r8546 r8766 332 332 socket.write command 333 333 result = socket.gets 334 raise MemCacheError, $1.strip if result =~ /^SERVER_ERROR (.*)/ 334 raise_on_error_response! result 335 result 335 336 rescue SocketError, SystemCallError, IOError => err 336 337 server.close … … 360 361 @mutex.lock if @multithread 361 362 socket.write command 362 socket.gets 363 result = socket.gets 364 raise_on_error_response! result 365 result 363 366 rescue SocketError, SystemCallError, IOError => err 364 367 server.close … … 384 387 begin 385 388 sock.write "delete #{cache_key} #{expiry}\r\n" 386 sock.gets 389 result = sock.gets 390 raise_on_error_response! result 391 result 387 392 rescue SocketError, SystemCallError, IOError => err 388 393 server.close … … 407 412 sock.write "flush_all\r\n" 408 413 result = sock.gets 409 raise MemCacheError, $2.strip if result =~ /^(SERVER_)?ERROR(.*)/ 414 raise_on_error_response! result 415 result 410 416 rescue SocketError, SystemCallError, IOError => err 411 417 server.close … … 472 478 stats = {} 473 479 while line = sock.gets do 480 raise_on_error_response! line 474 481 break if line == "END\r\n" 475 if line =~ / ^STAT ([\w]+) ([\w\.\:]+)/ then482 if line =~ /\ASTAT ([\w]+) ([\w\.\:]+)/ then 476 483 name, value = $1, $2 477 484 stats[name] = case name … … 483 490 Float(seconds) + (Float(microseconds) / 1_000_000) 484 491 else 485 if value =~ / ^\d+$/ then492 if value =~ /\A\d+\Z/ then 486 493 value.to_i 487 494 else … … 565 572 socket.write "decr #{cache_key} #{amount}\r\n" 566 573 text = socket.gets 574 raise_on_error_response! text 567 575 return nil if text == "NOT_FOUND\r\n" 568 576 return text.to_i … … 583 591 end 584 592 593 raise_on_error_response! keyline 585 594 return nil if keyline == "END\r\n" 586 595 … … 605 614 while keyline = socket.gets do 606 615 return values if keyline == "END\r\n" 607 608 unless keyline =~ /^VALUE (.+) (.+) (.+)/ then 616 raise_on_error_response! keyline 617 618 unless keyline =~ /\AVALUE (.+) (.+) (.+)/ then 609 619 server.close 610 620 raise MemCacheError, "unexpected response #{keyline.inspect}" … … 628 638 socket.write "incr #{cache_key} #{amount}\r\n" 629 639 text = socket.gets 640 raise_on_error_response! text 630 641 return nil if text == "NOT_FOUND\r\n" 631 642 return text.to_i … … 681 692 @mutex.unlock 682 693 end 694 695 def raise_on_error_response!(response) 696 if response =~ /\A(?:CLIENT_|SERVER_)?ERROR (.*)/ 697 raise MemCacheError, $1.strip 698 end 699 end 700 683 701 684 702 ## … … 821 839 @status = sprintf "DEAD: %s, will retry at %s", reason, @retry 822 840 end 823 824 841 end 825 842