Author: jamessan Date: Thu Apr 2 03:01:43 2020 New Revision: 1876020 URL: http://svn.apache.org/viewvc?rev=1876020&view=rev Log: Fix Proc.new warnings in Ruby bindings with Ruby >= 2.7
Per Ruby 2.7's release notes[1], use the block-capturing syntax instead of explicit Proc.new to resolve warnings like these in the Ruby SWIG APIs: subversion/bindings/swig/ruby/svn/client.rb:640: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead subversion/bindings/swig/ruby/svn/core.rb:258: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead [1]: https://github.com/ruby/ruby/blob/v2_7_0/NEWS#proclambda-without-block-is-deprecated- * subversion/bindings/swig/ruby/svn/client.rb: (set_log_msg_func, set_log_msg_func2, set_notify_func, set_cancel_func): Replace callback=Proc.new parameter with &callback (def_init_callbacks): Remove explicit nil parameters to above functions, leveraging deafaults * subversion/bindings/swig/ruby/svn/core.rb: (add_simple_prompt_provider, add_username_prompt_provider, add_ssl_server_trust_prompt_provider, add_ssl_client_cert_prompt_provider, add_ssl_client_cert_pw_prompt_provider): Replace prompt=Proc.new parameter with &prompt Modified: subversion/trunk/subversion/bindings/swig/ruby/svn/client.rb subversion/trunk/subversion/bindings/swig/ruby/svn/core.rb Modified: subversion/trunk/subversion/bindings/swig/ruby/svn/client.rb URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/ruby/svn/client.rb?rev=1876020&r1=1876019&r2=1876020&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/swig/ruby/svn/client.rb (original) +++ subversion/trunk/subversion/bindings/swig/ruby/svn/client.rb Thu Apr 2 03:01:43 2020 @@ -637,25 +637,25 @@ module Svn ignore_externals, allow_unver_obstruction, self) end - def set_log_msg_func(callback=Proc.new) + def set_log_msg_func(&callback) callback_wrapper = Proc.new do |items| items = items.collect do |item| item_wrapper = CommitItemWrapper.new(item) end callback.call(items) end - set_log_msg_func2(callback_wrapper) + set_log_msg_func2(&callback_wrapper) end - def set_log_msg_func2(callback=Proc.new) + def set_log_msg_func2(&callback) @log_msg_baton = Client.set_log_msg_func3(self, callback) end - def set_notify_func(callback=Proc.new) + def set_notify_func(&callback) @notify_baton = Client.set_notify_func2(self, callback) end - def set_cancel_func(callback=Proc.new) + def set_cancel_func(&callback) @cancel_baton = Client.set_cancel_func(self, callback) end @@ -707,9 +707,9 @@ module Svn private def init_callbacks - set_log_msg_func(nil) - set_notify_func(nil) - set_cancel_func(nil) + set_log_msg_func + set_notify_func + set_cancel_func end %w(log_msg notify cancel).each do |type| private "#{type}_func", "#{type}_baton" Modified: subversion/trunk/subversion/bindings/swig/ruby/svn/core.rb URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/ruby/svn/core.rb?rev=1876020&r1=1876019&r2=1876020&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/swig/ruby/svn/core.rb (original) +++ subversion/trunk/subversion/bindings/swig/ruby/svn/core.rb Thu Apr 2 03:01:43 2020 @@ -249,31 +249,31 @@ module Svn end end - def add_simple_prompt_provider(retry_limit, prompt=Proc.new) + def add_simple_prompt_provider(retry_limit, &prompt) args = [retry_limit] klass = AuthCredSimple add_prompt_provider("simple", args, prompt, klass) end - def add_username_prompt_provider(retry_limit, prompt=Proc.new) + def add_username_prompt_provider(retry_limit, &prompt) args = [retry_limit] klass = AuthCredUsername add_prompt_provider("username", args, prompt, klass) end - def add_ssl_server_trust_prompt_provider(prompt=Proc.new) + def add_ssl_server_trust_prompt_provider(&prompt) args = [] klass = AuthCredSSLServerTrust add_prompt_provider("ssl_server_trust", args, prompt, klass) end - def add_ssl_client_cert_prompt_provider(retry_limit, prompt=Proc.new) + def add_ssl_client_cert_prompt_provider(retry_limit, &prompt) args = [retry_limit] klass = AuthCredSSLClientCert add_prompt_provider("ssl_client_cert", args, prompt, klass) end - def add_ssl_client_cert_pw_prompt_provider(retry_limit, prompt=Proc.new) + def add_ssl_client_cert_pw_prompt_provider(retry_limit, &prompt) args = [retry_limit] klass = AuthCredSSLClientCertPw add_prompt_provider("ssl_client_cert_pw", args, prompt, klass)
