aboutsummaryrefslogtreecommitdiffstats
path: root/activeresource/lib
diff options
context:
space:
mode:
authorCody Fauser <codyfauser@gmail.com>2008-10-07 12:05:41 -0400
committerPratik Naik <pratiknaik@gmail.com>2008-10-07 17:48:02 +0100
commitf2c10f27565318b5efbdc57fb608b2afe9ae445d (patch)
tree584cc6362342480d2c6b576d86bc9a539f8d3043 /activeresource/lib
parentdce6ade4cdc2833b53bd600ef10f9bce83c7102d (diff)
downloadrails-f2c10f27565318b5efbdc57fb608b2afe9ae445d.tar.gz
rails-f2c10f27565318b5efbdc57fb608b2afe9ae445d.tar.bz2
rails-f2c10f27565318b5efbdc57fb608b2afe9ae445d.zip
Add ActiveResource::Base#to_xml and ActiveResource::Base#to_json methods. [#1011 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activeresource/lib')
-rw-r--r--activeresource/lib/active_resource/base.rb36
-rw-r--r--activeresource/lib/active_resource/formats/json_format.rb2
2 files changed, 37 insertions, 1 deletions
diff --git a/activeresource/lib/active_resource/base.rb b/activeresource/lib/active_resource/base.rb
index 74d8128c0e..bb284803d8 100644
--- a/activeresource/lib/active_resource/base.rb
+++ b/activeresource/lib/active_resource/base.rb
@@ -854,6 +854,42 @@ module ActiveResource
#
# my_group.to_xml(:skip_instruct => true)
# # => <subsidiary_group> [...] </subsidiary_group>
+ def to_xml(options={})
+ attributes.to_xml({:root => self.class.element_name}.merge(options))
+ end
+
+ # Returns a JSON string representing the model. Some configuration is
+ # available through +options+.
+ #
+ # ==== Options
+ # The +options+ are passed to the +to_json+ method on each
+ # attribute, so the same options as the +to_json+ methods in
+ # Active Support.
+ #
+ # * <tt>:only</tt> - Only include the specified attribute or list of
+ # attributes in the serialized output. Attribute names must be specified
+ # as strings.
+ # * <tt>:except</tt> - Do not include the specified attribute or list of
+ # attributes in the serialized output. Attribute names must be specified
+ # as strings.
+ #
+ # ==== Examples
+ # person = Person.new(:first_name => "Jim", :last_name => "Smith")
+ # person.to_json
+ # # => {"first_name": "Jim", "last_name": "Smith"}
+ #
+ # person.to_json(:only => ["first_name"])
+ # # => {"first_name": "Jim"}
+ #
+ # person.to_json(:except => ["first_name"])
+ # # => {"last_name": "Smith"}
+ def to_json(options={})
+ attributes.to_json(options)
+ end
+
+ # Returns the serialized string representation of the resource in the configured
+ # serialization format specified in ActiveResource::Base.format. The options
+ # applicable depend on the configured encoding format.
def encode(options={})
case self.class.format
when ActiveResource::Formats[:xml]
diff --git a/activeresource/lib/active_resource/formats/json_format.rb b/activeresource/lib/active_resource/formats/json_format.rb
index 9e269d4ded..1d88fc5f16 100644
--- a/activeresource/lib/active_resource/formats/json_format.rb
+++ b/activeresource/lib/active_resource/formats/json_format.rb
@@ -12,7 +12,7 @@ module ActiveResource
end
def encode(hash, options={})
- hash.to_json
+ hash.to_json(options)
end
def decode(json)