aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/net/imap.rb9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/net/imap.rb b/lib/net/imap.rb
index aa46e47ef1..720acbc86d 100644
--- a/lib/net/imap.rb
+++ b/lib/net/imap.rb
@@ -903,8 +903,9 @@ module Net
# end
# }
#
- def add_response_handler(handler = Proc.new)
- @response_handlers.push(handler)
+ def add_response_handler(handler = nil, &block)
+ raise ArgumentError, "two Procs are passed" if handler && block
+ @response_handlers.push(block || handler)
end
# Removes the response handler.
@@ -959,7 +960,7 @@ module Net
put_string("#{tag} IDLE#{CRLF}")
begin
- add_response_handler(response_handler)
+ add_response_handler(&response_handler)
@idle_done_cond = new_cond
@idle_done_cond.wait(timeout)
@idle_done_cond = nil
@@ -1267,7 +1268,7 @@ module Net
@logout_command_tag = tag
end
if block
- add_response_handler(block)
+ add_response_handler(&block)
end
begin
return get_tagged_response(tag, cmd)