aboutsummaryrefslogtreecommitdiffstats
path: root/lib/base64.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-21 07:10:41 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-21 07:10:41 +0000
commitb89f4520e502e4e100c3d56216305eaf870243b6 (patch)
tree13afe998269baa7f809d4f6504faeb289b074912 /lib/base64.rb
parentce164c2a304b18d833d8e5835570df5f2534c636 (diff)
downloadruby-b89f4520e502e4e100c3d56216305eaf870243b6.tar.gz
* lib/base64.rb: enclosed in a module. [ruby-core:02285]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/base64.rb')
-rw-r--r--lib/base64.rb141
1 files changed, 81 insertions, 60 deletions
diff --git a/lib/base64.rb b/lib/base64.rb
index 0e14dde9f7..d4d33d0bf0 100644
--- a/lib/base64.rb
+++ b/lib/base64.rb
@@ -12,73 +12,94 @@ require "kconv"
# puts plain
+module Base64
+ module_function
-# Returns the Base64-decoded version of \obj{str}.
-#
-# require 'base64'
-# str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
-# 'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
-# 'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
-# puts decode64(str)
-#
-# <i>Generates:</i>
-#
-# This is line one
-# This is line two
-# This is line three
-# And so on...
+ # Returns the Base64-decoded version of \obj{str}.
+ #
+ # require 'base64'
+ # str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
+ # 'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
+ # 'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
+ # puts decode64(str)
+ #
+ # <i>Generates:</i>
+ #
+ # This is line one
+ # This is line two
+ # This is line three
+ # And so on...
-def decode64(str)
- str.unpack("m")[0]
-end
+ def decode64(str)
+ str.unpack("m")[0]
+ end
-# Decodes text formatted using a subset of RFC2047 (the one used for
-# mime-encoding mail headers). Only supports an encoding type of 'b'
-# (base 64), and only supports the character sets ISO-2022-JP and
-# SHIFT_JIS (so the only two encoded word sequences recognized are
-# <tt>=?ISO-2022-JP?B?...=</tt> and
-# <tt>=?SHIFT_JIS?B?...=</tt>). Recognition of these sequences is case
-# insensitive.
+ # Decodes text formatted using a subset of RFC2047 (the one used for
+ # mime-encoding mail headers). Only supports an encoding type of 'b'
+ # (base 64), and only supports the character sets ISO-2022-JP and
+ # SHIFT_JIS (so the only two encoded word sequences recognized are
+ # <tt>=?ISO-2022-JP?B?...=</tt> and
+ # <tt>=?SHIFT_JIS?B?...=</tt>). Recognition of these sequences is case
+ # insensitive.
-def decode_b(str)
- str.gsub!(/=\?ISO-2022-JP\?B\?([!->@-~]+)\?=/i) {
- decode64($1)
- }
- str = Kconv::toeuc(str)
- str.gsub!(/=\?SHIFT_JIS\?B\?([!->@-~]+)\?=/i) {
- decode64($1)
- }
- str = Kconv::toeuc(str)
- str.gsub!(/\n/, ' ')
- str.gsub!(/\0/, '')
- str
-end
+ def decode_b(str)
+ str.gsub!(/=\?ISO-2022-JP\?B\?([!->@-~]+)\?=/i) {
+ decode64($1)
+ }
+ str = Kconv::toeuc(str)
+ str.gsub!(/=\?SHIFT_JIS\?B\?([!->@-~]+)\?=/i) {
+ decode64($1)
+ }
+ str = Kconv::toeuc(str)
+ str.gsub!(/\n/, ' ')
+ str.gsub!(/\0/, '')
+ str
+ end
-# Returns the Base64-encoded version of \obj{str}.
-#
-# require 'base64'
-# str = "Once\nupon\na\ntime." #!sh!
-# enc = encode64(str)
-# decode64(enc)
+ # Returns the Base64-encoded version of \obj{str}.
+ #
+ # require 'base64'
+ # str = "Once\nupon\na\ntime." #!sh!
+ # enc = encode64(str)
+ # decode64(enc)
-def encode64(bin)
- [bin].pack("m")
-end
+ def encode64(bin)
+ [bin].pack("m")
+ end
-# Prints the Base64 encoded version of _bin_ (a +String+) in lines of
-# _len_ (default 60) characters.
-#
-# require 'base64'
-# b64encode("Now is the time for all good coders\nto learn Ruby")
-#
-# Generates
-#
-# Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
-# UnVieQ==
+ # Prints the Base64 encoded version of _bin_ (a +String+) in lines of
+ # _len_ (default 60) characters.
+ #
+ # require 'base64'
+ # b64encode("Now is the time for all good coders\nto learn Ruby")
+ #
+ # Generates
+ #
+ # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
+ # UnVieQ==
-def b64encode(bin, len = 60)
- encode64(bin).scan(/.{1,#{len}}/o) do
- print $&, "\n"
+ def b64encode(bin, len = 60)
+ encode64(bin).scan(/.{1,#{len}}/o) do
+ print $&, "\n"
+ end
+ end
+
+ module Deprecated
+ include Base64
+
+ def _deprecated_base64(*args)
+ m0, m1 = caller(0)
+ m = m0[/\`(.*?)\'\z/, 1]
+ warn("#{m1}: #{m} is deprecated; use Base64.#{m} instead")
+ super
+ end
+ dep = instance_method(:_deprecated_base64)
+ remove_method(:_deprecated_base64)
+ for m in Base64.private_instance_methods(false)
+ define_method(m, dep)
+ end
end
-end
+end
+
+include Base64::Deprecated