diff options
author | rick <technoweenie@gmail.com> | 2009-04-23 00:08:40 -0700 |
---|---|---|
committer | rick <technoweenie@gmail.com> | 2009-04-23 00:08:40 -0700 |
commit | 3c4c6bd0df598f865f49a983b4c65c415af4bcfc (patch) | |
tree | 0984e610d94f22dfa70e95259f1a81e57e7f9db7 /activesupport/lib/active_support/json/encoders/string.rb | |
parent | bab2bfa69220ca1b6c7b56dccc79cf8e41245306 (diff) | |
download | rails-3c4c6bd0df598f865f49a983b4c65c415af4bcfc.tar.gz rails-3c4c6bd0df598f865f49a983b4c65c415af4bcfc.tar.bz2 rails-3c4c6bd0df598f865f49a983b4c65c415af4bcfc.zip |
* Add pluggable JSON backends with support for the JSON gem. [rick]
Example: ActiveSupport::JSON.backend = "JSONGem"
All internal Rails JSON encoding is now handled by ActiveSupport::JSON.encode(). Use of #to_json is not recommended, as it may clash with other libraries that overwrite it. However, you can recover Rails specific functionality
if you really want to use #to_json.
gem 'json'
ActiveSupport::JSON.backend = "JSONGem"
class ActiveRecord::Base
alias to_json rails_to_json
end
Diffstat (limited to 'activesupport/lib/active_support/json/encoders/string.rb')
-rw-r--r-- | activesupport/lib/active_support/json/encoders/string.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/json/encoders/string.rb b/activesupport/lib/active_support/json/encoders/string.rb index 5ef797955a..27bef3b9cc 100644 --- a/activesupport/lib/active_support/json/encoders/string.rb +++ b/activesupport/lib/active_support/json/encoders/string.rb @@ -22,7 +22,7 @@ end ActiveSupport.escape_html_entities_in_json = true class String - def to_json(options = nil) #:nodoc: + def rails_to_json(options = nil) #:nodoc: json = '"' + gsub(ActiveSupport::JSON::Encoding.escape_regex) { |s| ActiveSupport::JSON::Encoding::ESCAPED_CHARS[s] } @@ -33,4 +33,6 @@ class String s.unpack("U*").pack("n*").unpack("H*")[0].gsub(/.{4}/, '\\\\u\&') } + '"' end + + alias to_json rails_to_json end |