diff options
author | Erich Menge <erich.menge@me.com> | 2012-05-30 10:24:23 -0500 |
---|---|---|
committer | Erich Menge <erich.menge@me.com> | 2012-05-30 10:24:23 -0500 |
commit | 624f801d27e946cae2244924e7f6a04565666036 (patch) | |
tree | 7de4afec17a1d1d7aa40405f1bc9b89663381b75 /activesupport | |
parent | f09ae8538f3625468ee175d5a4d9782e0d5ba415 (diff) | |
download | rails-624f801d27e946cae2244924e7f6a04565666036.tar.gz rails-624f801d27e946cae2244924e7f6a04565666036.tar.bz2 rails-624f801d27e946cae2244924e7f6a04565666036.zip |
True, False, and Nil should be represented in as_json as themselves.
Conflicts:
activesupport/lib/active_support/json/encoding.rb
activesupport/test/json/encoding_test.rb
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/json/encoding.rb | 12 | ||||
-rw-r--r-- | activesupport/test/json/encoding_test.rb | 6 |
2 files changed, 12 insertions, 6 deletions
diff --git a/activesupport/lib/active_support/json/encoding.rb b/activesupport/lib/active_support/json/encoding.rb index 4a19387511..91e4f07c6c 100644 --- a/activesupport/lib/active_support/json/encoding.rb +++ b/activesupport/lib/active_support/json/encoding.rb @@ -158,18 +158,18 @@ class Struct #:nodoc: end class TrueClass - AS_JSON = ActiveSupport::JSON::Variable.new('true').freeze - def as_json(options = nil) AS_JSON end #:nodoc: + def as_json(options = nil) self end #:nodoc: + def encode_json(encoder) to_s end #:nodoc: end class FalseClass - AS_JSON = ActiveSupport::JSON::Variable.new('false').freeze - def as_json(options = nil) AS_JSON end #:nodoc: + def as_json(options = nil) self end #:nodoc: + def encode_json(encoder) to_s end #:nodoc: end class NilClass - AS_JSON = ActiveSupport::JSON::Variable.new('null').freeze - def as_json(options = nil) AS_JSON end #:nodoc: + def as_json(options = nil) self end #:nodoc: + def encode_json(encoder) 'null' end #:nodoc: end class String diff --git a/activesupport/test/json/encoding_test.rb b/activesupport/test/json/encoding_test.rb index 8cf1a54a99..a9590f164f 100644 --- a/activesupport/test/json/encoding_test.rb +++ b/activesupport/test/json/encoding_test.rb @@ -270,6 +270,12 @@ class TestJSONEncoding < Test::Unit::TestCase JSON.parse(json_string_and_date)) end + def test_nil_true_and_false_represented_as_themselves + assert_equal nil, nil.as_json + assert_equal true, true.as_json + assert_equal false, false.as_json + end + protected def object_keys(json_object) |