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)


Reply via email to