<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -20,8 +20,8 @@ class MessagesController &lt; ApplicationController
       end
     end
     respond_to do |wants|
-      wants.json { render :json =&gt; @messages.to_json(:methods =&gt; [:user_first_name, :user_last_name]) }
-      wants.xml { render :xml =&gt; @messages.to_xml(:methods =&gt; [:user_first_name, :user_last_name]) }
+      wants.json { render :json =&gt; @messages.to_json(Message.default_serialization_options) }
+      wants.xml { render :xml =&gt; @messages.to_xml(Message.default_serialization_options) }
     end
   end
 
@@ -29,8 +29,8 @@ class MessagesController &lt; ApplicationController
     @message = current_user.messages.build(params[:message] &amp;&amp; params[:message].merge(:kind =&gt; 'message'))
     respond_to do |wants|
       if @message.save
-        wants.json { render :json =&gt; @message.to_json(:methods =&gt; [:user_first_name, :user_last_name]) }
-        wants.xml { render :xml =&gt; @message.to_xml(:methods =&gt; [:user_first_name, :user_last_name]) }
+        wants.json { render :json =&gt; @message.to_json(Message.default_serialization_options) }
+        wants.xml { render :xml =&gt; @message.to_xml(Message.default_serialization_options) }
       else
         wants.json { render :json =&gt; @message.errors.full_messages }
         wants.xml { render :xml =&gt; @message.errors }</diff>
      <filename>app/controllers/messages_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,8 +9,8 @@ class UsersController &lt; ApplicationController
       order_by email
     end
     respond_to do |wants|
-      wants.json { render :json =&gt; @users.to_json(:only =&gt; [:id, :email, :first_name, :last_name]) }
-      wants.xml { render :xml =&gt; @users.to_xml(:only =&gt; [:id, :email, :first_name, :last_name]) }
+      wants.json { render :json =&gt; @users.to_json(User.default_serialization_options) }
+      wants.xml { render :xml =&gt; @users.to_xml(User.default_serialization_options) }
     end
   end
 
@@ -20,8 +20,8 @@ class UsersController &lt; ApplicationController
     respond_to do |wants|
       if @user.save
         self.current_user = @user
-        wants.json { render :json =&gt; @user.to_json(:only =&gt; [:id, :email, :first_name, :last_name]) }
-        wants.xml { render :xml =&gt; @user.to_xml(:only =&gt; [:id, :email, :first_name, :last_name]) }
+        wants.json { render :json =&gt; @user.to_json(User.default_serialization_options) }
+        wants.xml { render :xml =&gt; @user.to_xml(User.default_serialization_options) }
       else
         wants.json { render :json =&gt; @user.errors.full_messages }
         wants.xml { render :xml =&gt; @user.errors }
@@ -36,8 +36,8 @@ class UsersController &lt; ApplicationController
       order_by email
     end
     respond_to do |wants|
-      wants.json { render :json =&gt; @users.to_json(:only =&gt; [:id, :email, :first_name, :last_name]) }
-      wants.xml { render :xml =&gt; @users.to_xml(:only =&gt; [:id, :email, :first_name, :last_name]) }
+      wants.json { render :json =&gt; @users.to_json(User.default_serialization_options) }
+      wants.xml { render :xml =&gt; @users.to_xml(User.default_serialization_options) }
     end
   end
 </diff>
      <filename>app/controllers/users_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,4 +8,8 @@ class Message &lt; ActiveRecord::Base
 
   delegate :first_name, :last_name, :to =&gt; :user, :prefix =&gt; true, :allow_nil =&gt; true
 
+  def self.default_serialization_options
+    {:methods =&gt; [:user_first_name, :user_last_name]}
+  end
+
 end</diff>
      <filename>app/models/message.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,6 +16,10 @@ class User &lt; ActiveRecord::Base
 
   named_scope :stale, proc { { :conditions =&gt; ['last_activity_at &lt; ? AND logged_in = ?', Flak.stale_timeout_in_minutes.to_i.minutes.ago, true] } }
 
+  def self.default_serialization_options
+    {:only =&gt; [:id, :email, :first_name, :last_name]}
+  end
+
   def self.authenticate(options)
     options ||= {}
     return nil if options[:email].blank? || options[:password].blank?</diff>
      <filename>app/models/user.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,13 +8,13 @@ class MessagesControllerTest &lt; ActionController::TestCase
         user = Factory(:user)
         login_as(user)
         post :create, :message =&gt; Factory.attributes_for(:message)
-        assert JSON.parse(@response.body)['message']['id'], user.messages.last.id
+        assert_equal @response.body, user.messages.last.to_json(Message.default_serialization_options)
       end
 
       should &quot;return errors on failure&quot; do
         login_as(Factory(:user))
         post :create
-        assert_same_elements JSON.parse(@response.body), Message.create.errors.full_messages
+        assert_same_elements @response.body, Message.create.errors.full_messages.to_json
       end
     end
 
@@ -24,7 +24,7 @@ class MessagesControllerTest &lt; ActionController::TestCase
         messages = [Factory(:login_message), Factory(:stale_logout_message), Factory(:message)]
         get :index
         assert_response :success
-        assert_same_elements JSON.parse(@response.body).map{|j| j['message']['id']}, Message.all.map(&amp;:id)
+        assert_same_elements @response.body, Message.all.to_json(Message.default_serialization_options)
       end
 
       context &quot;when limiting responses&quot; do
@@ -40,22 +40,22 @@ class MessagesControllerTest &lt; ActionController::TestCase
         should &quot;return messages after the given id in chronological order&quot; do
           get :index, :after_id =&gt; @messages[1].id
           assert_response :success
-          assert_equal [@messages[2], @messages[3], @user.messages.last].map(&amp;:id),
-                       JSON.parse(@response.body).map{|j|j['message']['id']}
+          assert_equal Message.all(:conditions =&gt; ['id &gt; ?', @messages[1].id], :order =&gt; 'created_at').to_json(Message.default_serialization_options),
+                       @response.body
         end
 
         should &quot;return messages before the given id in reverse chronological order&quot; do
           get :index, :before_id =&gt; @messages[2].id
           assert_response :success
-          assert_equal [@messages[1].id, @messages[0].id],
-                       JSON.parse(@response.body).map{|j|j['message']['id']}
+          assert_equal Message.all(:conditions =&gt; ['id &lt; ?', @messages[2].id], :order =&gt; 'created_at desc').to_json(Message.default_serialization_options),
+                       @response.body
         end
 
-        should &quot;only return the kind of message specified&quot; do
+        should &quot;only return the kind of message specified in reverse chronological order&quot; do
           get :index, :kind =&gt; &quot;message&quot;
           assert_response :success
-          assert_same_elements @messages.map(&amp;:id),
-                               JSON.parse(@response.body).map{|j|j['message']['id']}
+          assert_same_elements Message.find_all_by_kind('message', :order =&gt; 'created_at desc').to_json(Message.default_serialization_options),
+                               @response.body
         end
       end
     end</diff>
      <filename>test/functional/messages_controller_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,13 +7,13 @@ class UsersControllerTest &lt; ActionController::TestCase
       should &quot;return the id of the new user on success&quot; do
         post :create, :key =&gt; Flak.signup_key, :user =&gt; Factory.attributes_for(:user)
         assert_response :success
-        assert JSON.parse(@response.body)[&quot;user&quot;][&quot;id&quot;], &quot;The id of the new user was not returned on success&quot;
+        assert_equal @response.body, User.last.to_json(User.default_serialization_options)
       end
 
       should &quot;return errors on failure&quot; do
         post :create, :key =&gt; Flak.signup_key
         assert_response :success
-        assert_same_elements JSON.parse(@response.body), User.create.errors.full_messages
+        assert_same_elements @response.body, User.create.errors.full_messages.to_json
       end
     end
 
@@ -40,10 +40,8 @@ class UsersControllerTest &lt; ActionController::TestCase
         @active_user = Factory(:active_user)
         get :current
         assert_response :success
-        body = JSON.parse(@response.body).sort_by{|r| r['user']['id'] }
-        assert_equal user.id, body.first['user']['id']
-        assert_equal @active_user.id, body.last['user']['id']
-        assert !body.any?{|r| r['user']['id'] == @logged_out_user.id }
+        assert_equal User.find_all_by_logged_in(true).to_json(User.default_serialization_options),
+                     @response.body
       end
     end
 </diff>
      <filename>test/functional/users_controller_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bf91cdf520a98a16551ba487eb0263b75bbca8a3</id>
    </parent>
  </parents>
  <author>
    <name>Nathan Sutton</name>
    <email>nate@sevenwire.com</email>
  </author>
  <url>http://github.com/sevenwire/flak/commit/6712cc8adf4fb1d0f4bd2a00c491ed8c5658a56d</url>
  <id>6712cc8adf4fb1d0f4bd2a00c491ed8c5658a56d</id>
  <committed-date>2009-11-02T20:47:50-08:00</committed-date>
  <authored-date>2009-11-02T20:47:50-08:00</authored-date>
  <message>Adding default serialization options</message>
  <tree>84e568b700a1bddbd4c03cb3e7f22b85f3f9edcc</tree>
  <committer>
    <name>Nathan Sutton</name>
    <email>nate@sevenwire.com</email>
  </committer>
</commit>
