Base64.strict_encode64
rubyRuby 1.9 introduced a nice addition to the Base64 module:
Base64.strict_encode64. Whereas
Base64.encode64 prettifies its output with newlines,
Base64.strict_encode64 yields output without any
superfluous line feeds.
s = 'a' * 64
puts Base64.encode64 s
# >> YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
# >> YWFhYWFhYWFhYWFhYWFhYWFhYQ==
puts Base64.strict_encode64 s
# >> YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==
This is a nice feature if you find yourself in need of
RFC 4648-compliant output.
You need this, for example, if you are generating policy documents for a form
which uploads directly to Amazon
S3. In such a scenario, instead of sending #gsub to the output
of encode64 to strip out line feeds you can simply call
strict_encode64.