diff options
author | Cody Fauser <codyfauser@gmail.com> | 2008-10-07 12:05:41 -0400 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-10-07 17:48:02 +0100 |
commit | f2c10f27565318b5efbdc57fb608b2afe9ae445d (patch) | |
tree | 584cc6362342480d2c6b576d86bc9a539f8d3043 /activeresource/lib/active_resource | |
parent | dce6ade4cdc2833b53bd600ef10f9bce83c7102d (diff) | |
download | rails-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/active_resource')
-rw-r--r-- | activeresource/lib/active_resource/base.rb | 36 | ||||
-rw-r--r-- | activeresource/lib/active_resource/formats/json_format.rb | 2 |
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) |