diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2008-02-07 21:09:23 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2008-02-07 21:09:23 +0000 |
commit | fbd7ec3c9f0b1a5327ead66e0ac11b1d1d509f70 (patch) | |
tree | 44a1b9f1edd73c882aafd3d4a9f168a54963a6e9 | |
parent | 4a9fc4424ff7402326bf17c8bfd89bf6cbc42c8c (diff) | |
download | rails-fbd7ec3c9f0b1a5327ead66e0ac11b1d1d509f70.tar.gz rails-fbd7ec3c9f0b1a5327ead66e0ac11b1d1d509f70.tar.bz2 rails-fbd7ec3c9f0b1a5327ead66e0ac11b1d1d509f70.zip |
Added Base64.encode64s to encode values in base64 without the newlines. This makes the values immediately usable as URL parameters or memcache keys without further processing [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8816 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | activesupport/CHANGELOG | 3 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/base64.rb | 7 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/base64/encoding.rb | 13 | ||||
-rw-r--r-- | activesupport/test/core_ext/base64_ext_test.rb | 8 |
4 files changed, 31 insertions, 0 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index a8177c680a..38294ebef7 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Added Base64.encode64s to encode values in base64 without the newlines. This makes the values immediately usable as URL parameters or memcache keys without further processing [DHH] + * Remove :nodoc: entries around the ActiveSupport test/unit assertions. #10946 [dancroak, jamesh] * Add Time.zone_default accessor for setting the default time zone. Rails::Configuration.time_zone sets this. #10982 [Geoff Buesing] @@ -40,6 +42,7 @@ * Introduce ActiveSupport::TimeWithZone, for wrapping Time instances with a TimeZone. Introduce instance methods to Time for creating TimeWithZone instances, and class methods for managing a global time zone. [Geoff Buesing] +>>>>>>> .r8815 * Replace non-dst-aware TimeZone class with dst-aware class from tzinfo_timezone plugin. TimeZone#adjust and #unadjust are no longer available; tzinfo gem must now be present in order to perform time zone calculations, via #local_to_utc and #utc_to_local methods. [Geoff Buesing] * Extract ActiveSupport::Callbacks from Active Record, test case setup and teardown, and ActionController::Dispatcher. #10727 [Josh Peek] diff --git a/activesupport/lib/active_support/core_ext/base64.rb b/activesupport/lib/active_support/core_ext/base64.rb new file mode 100644 index 0000000000..d8b1813851 --- /dev/null +++ b/activesupport/lib/active_support/core_ext/base64.rb @@ -0,0 +1,7 @@ +require 'base64' + +require 'active_support/core_ext/base64/encoding' + +module Base64#:nodoc: + extend ActiveSupport::CoreExtensions::Base64::Encoding +end diff --git a/activesupport/lib/active_support/core_ext/base64/encoding.rb b/activesupport/lib/active_support/core_ext/base64/encoding.rb new file mode 100644 index 0000000000..19671992d2 --- /dev/null +++ b/activesupport/lib/active_support/core_ext/base64/encoding.rb @@ -0,0 +1,13 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + 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. + def encode64s(value) + ::Base64.encode64(value).gsub(/\n/, '') + end + end + end + end +end
\ No newline at end of file diff --git a/activesupport/test/core_ext/base64_ext_test.rb b/activesupport/test/core_ext/base64_ext_test.rb new file mode 100644 index 0000000000..aafbbd8539 --- /dev/null +++ b/activesupport/test/core_ext/base64_ext_test.rb @@ -0,0 +1,8 @@ +require 'abstract_unit' + +class Base64Test < Test::Unit::TestCase + def test_no_newline_in_encoded_value + assert_match /\n/, Base64.encode64("oneverylongstringthatwouldnormallybesplitupbynewlinesbytheregularbase64") + assert_no_match /\n/, Base64.encode64s("oneverylongstringthatwouldnormallybesplitupbynewlinesbytheregularbase64") + end +end |