aboutsummaryrefslogtreecommitdiffstats
path: root/lib/base64.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-17 20:58:34 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-17 20:58:34 +0000
commit51b031093069dd4a89e25b6057f1eca8c0c7e24e (patch)
treee06ff239b5647ee8ecb1d9c507a5655e683ad948 /lib/base64.rb
parentc611b6d0cc50af72847ddb7c1d0f31aa3b18da25 (diff)
downloadruby-51b031093069dd4a89e25b6057f1eca8c0c7e24e.tar.gz
* lib/Env.rb, lib/base64.rb, lib/importenv.rb, lib/eregex.rb: removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/base64.rb')
-rw-r--r--lib/base64.rb136
1 files changed, 0 insertions, 136 deletions
diff --git a/lib/base64.rb b/lib/base64.rb
deleted file mode 100644
index f062da2b4c..0000000000
--- a/lib/base64.rb
+++ /dev/null
@@ -1,136 +0,0 @@
-#
-# = base64.rb: methods for base64-encoding and -decoding stings
-#
-# Author:: Yukihiro Matsumoto
-# Documentation:: Dave Thomas and Gavin Sinclair
-#
-# Until Ruby 1.8.1, these methods were defined at the top-level. Now
-# they are in the Base64 module but included in the top-level, where
-# their usage is deprecated.
-#
-# See Base64 for documentation.
-#
-
-require "kconv"
-
-
-# The Base64 module provides for the encoding (#encode64) and decoding
-# (#decode64) of binary data using a Base64 representation.
-#
-# The following particular features are also provided:
-# - encode into lines of a given length (#b64encode)
-# - decode the special format specified in RFC2047 for the
-# representation of email headers (decode_b)
-#
-# == Example
-#
-# A simple encoding and decoding.
-#
-# require "base64"
-#
-# enc = Base64.encode64('Send reinforcements')
-# # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
-# plain = Base64.decode64(enc)
-# # -> "Send reinforcements"
-#
-# The purpose of using base64 to encode data is that it translates any
-# binary data into purely printable characters. It is specified in
-# RFC 2045 (http://www.faqs.org/rfcs/rfc2045.html).
-
-module Base64
- module_function
-
- # Returns the Base64-decoded version of +str+.
- #
- # require 'base64'
- # str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
- # 'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
- # 'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
- # puts Base64.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
-
-
- # 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
-
- # Returns the Base64-encoded version of +str+.
- #
- # require 'base64'
- # Base64.b64encode("Now is the time for all good coders\nto learn Ruby")
- #
- # <i>Generates:</i>
- #
- # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
- # UnVieQ==
-
- 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'
- # data = "Now is the time for all good coders\nto learn Ruby"
- # Base64.b64encode(data)
- #
- # <i>Generates:</i>
- #
- # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
- # UnVieQ==
-
- def b64encode(bin, len = 60)
- encode64(bin).scan(/.{1,#{len}}/) do
- print $&, "\n"
- end
- end
-
-
- module Deprecated # :nodoc:
- 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
-
-include Base64::Deprecated