Permalink
Browse files

Add some documentation and examples for Base64 encode64 and decode64,…

… and encode64s.
  • Loading branch information...
1 parent 7da89e9 commit ce8fded9bb75dca4ffcd88ba9de9b0a2e74493d6 Cody Fauser committed Sep 21, 2008
@@ -7,13 +7,24 @@ module ActiveSupport
if defined? ::Base64
Base64 = ::Base64
else
- # Ruby 1.9 doesn't provide base64, so we wrap this here
+ # Base64 provides utility methods for encoding and de-coding binary data
+ # using a base 64 representation. A base 64 representation of binary data
+ # consists entirely of printable US-ASCII characters. The Base64 module
+ # is included in Ruby 1.8, but has been removed in Ruby 1.9.
module Base64
-
+ # Encodes a string to its base 64 representation. Each 60 characters of
+ # output is separated by a newline character.
+ #
+ # ActiveSupport::Base64.encode64("Original unencoded string")
+ # # => "T3JpZ2luYWwgdW5lbmNvZGVkIHN0cmluZw==\n"
def self.encode64(data)
[data].pack("m")
end
+ # Decodes a base 64 encoded string to its original representation.
+ #
+ # ActiveSupport::Base64.decode64("T3JpZ2luYWwgdW5lbmNvZGVkIHN0cmluZw==")
+ # # => "Original unencoded string"
def self.decode64(data)
data.unpack("m").first
end
@@ -4,6 +4,9 @@ module Base64 #:nodoc:
module Encoding
# Encodes the value as base64 without the newline breaks. This makes the base64 encoding readily usable as URL parameters
# or memcache keys without further processing.
+ #
+ # ActiveSupport::Base64.encode64s("Original unencoded string")
+ # # => "T3JpZ2luYWwgdW5lbmNvZGVkIHN0cmluZw=="
def encode64s(value)
encode64(value).gsub(/\n/, '')
end

0 comments on commit ce8fded

Please sign in to comment.