Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
extend and define ::Base64 if needed
- Loading branch information
Showing
11 changed files
with
70 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,47 @@ | ||
begin | ||
require 'base64' | ||
rescue LoadError | ||
end | ||
|
||
module ActiveSupport | ||
if defined? ::Base64 | ||
Base64 = ::Base64 | ||
else | ||
# 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 | ||
# The Base64 module isn't available in ealier versions of 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 | ||
# 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 | ||
end | ||
end | ||
|
||
unless Base64.respond_to?(:strict_encode64) | ||
# Included in Ruby 1.9 | ||
def Base64.strict_encode64(value) | ||
encode64(value).gsub(/\n/, '') | ||
end | ||
end | ||
|
||
module ActiveSupport | ||
Base64 = ActiveSupport::Deprecation::DeprecatedConstantProxy.new('ActiveSupport::Base64', '::Base64') | ||
|
||
# *DEPRECATED*: Use +Base64.strict_encode64+ instead. | ||
# | ||
# 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 Base64.encode64s(value) | ||
ActiveSupport::Deprecation.warn "encode64s " \ | ||
"is deprecated. Use Base64.strict_encode64 instead", caller | ||
encode64(value).gsub(/\n/, '') | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters