aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model/serializers/json.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2009-08-14 12:34:38 -0300
committerEmilio Tagua <miloops@gmail.com>2009-08-14 12:34:38 -0300
commit48c1e6d584409d774b184e0f4d2ef28e5b0e9c90 (patch)
treea2becf0cce37a47579e848780b02f420d335ccd9 /activemodel/lib/active_model/serializers/json.rb
parent9ac01fad193b27e517ea772e0d1e13e06f4ddf34 (diff)
parentc6bc8e662614be711f45a8d4b231d5f993b024a7 (diff)
downloadrails-48c1e6d584409d774b184e0f4d2ef28e5b0e9c90.tar.gz
rails-48c1e6d584409d774b184e0f4d2ef28e5b0e9c90.tar.bz2
rails-48c1e6d584409d774b184e0f4d2ef28e5b0e9c90.zip
Merge commit 'rails/master'
Diffstat (limited to 'activemodel/lib/active_model/serializers/json.rb')
-rw-r--r--activemodel/lib/active_model/serializers/json.rb18
1 files changed, 4 insertions, 14 deletions
diff --git a/activemodel/lib/active_model/serializers/json.rb b/activemodel/lib/active_model/serializers/json.rb
index e94512fd64..ee6d48bfc6 100644
--- a/activemodel/lib/active_model/serializers/json.rb
+++ b/activemodel/lib/active_model/serializers/json.rb
@@ -5,6 +5,7 @@ module ActiveModel
module Serializers
module JSON
extend ActiveSupport::Concern
+ include ActiveModel::Serialization
included do
extend ActiveModel::Naming
@@ -12,19 +13,6 @@ module ActiveModel
cattr_accessor :include_root_in_json, :instance_writer => false
end
- class Serializer < ActiveModel::Serializer
- def serializable_hash
- model = super
- @serializable.include_root_in_json ?
- { @serializable.class.model_name.element => model } :
- model
- end
-
- def serialize
- ActiveSupport::JSON.encode(serializable_hash)
- end
- end
-
# Returns a JSON string representing the model. Some configuration is
# available through +options+.
#
@@ -92,7 +80,9 @@ module ActiveModel
# {"comments": [{"body": "Don't think too hard"}],
# "title": "So I was thinking"}]}
def encode_json(encoder)
- Serializer.new(self, encoder.options).to_s
+ hash = serializable_hash(encoder.options)
+ hash = { self.class.model_name.element => hash } if include_root_in_json
+ ActiveSupport::JSON.encode(hash)
end
def as_json(options = nil)