Feature #19626
openAlias Base64 methods to non-64 suffixed methods
Description
Long time Ruby user, first time issue poster. Apologies if this isn't the correct process of proposing this sort of change. Redirect me somewhere else if I need to be.
I'd like to propose aliasing the methods in the Base64 module to new methods:
Base64.encode64 -> Base64.encode
Base64.decode64 -> Base64.decode
etc.
I am guessing that this suffix was used to prevent issues where Base64 was included into a class and would (potentially) clash with that class's own decode and encode methods. This is not how Base64 has been used in my experience -- it's typically a call to the method such as Base64.encode64. But maybe my experience of Ruby is unique in that way.
I would still like to open this issue at least to start a potential discussion about these potential aliases, or at least documenting solid reasons why the 64 suffix has to stick.
        
          
          Updated by nobu (Nobuyoshi Nakada) over 2 years ago
          
          
        
        
      
      Aliasing singleton methods only?
diff --git a/lib/base64.rb b/lib/base64.rb
index 15c0b297ce2..e148adeaaf1 100644
--- a/lib/base64.rb
+++ b/lib/base64.rb
@@ -110,4 +110,10 @@
     end
     strict_decode64(str)
   end
+
+  class << self
+    public_instance_methods(false).each do |m|
+      alias_method(m.to_s.chomp("64"), m)
+    end
+  end
 end
$ ./ruby -rbase64 -e 'p Base64.encode("\0"*3)'
"AAAA\n"
        
          
          Updated by byroot (Jean Boussier) over 2 years ago
          
          
        
        
      
      Aliasing singleton methods only?
That would make sense.
And while we're at it, I think it would be nice to also alias theses as .load and .dump, as it makes composing various encoders much easier (e.g. https://github.com/Shopify/paquito/blob/7b97f481a3690fe5531aebe2273b779481cfa4ac/lib/paquito/coder_chain.rb).