<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,11 +1,5 @@
 module Gluestick
   class Interaction
-    LOOKED        = &quot;Looked&quot;
-    LIKED         = &quot;Liked&quot;
-    COMMENT       = &quot;Comment&quot;
-    LIKED_COMMENT = &quot;LikedComment&quot;
-    REPLY         = &quot;Reply&quot;
-
     attr_reader           :user, :object, :action
     private_class_method  :new
 
@@ -30,6 +24,10 @@ module Gluestick
 
     private
 
+    def self.create
+      new
+    end
+
     def self.is_single_interaction?(response)
       if response.response['interactions']
         false
@@ -49,7 +47,7 @@ module Gluestick
 	    object  = Gluestick::Object.from_interaction(interaction_element)
 	    action  = interaction_element['action']
 	
-	    interaction = new
+	    interaction = create_for_action(action)
 	    interaction.instance_variable_set(&quot;@user&quot;, user)
 	    interaction.instance_variable_set(&quot;@object&quot;, object)
 	    interaction.instance_variable_set(&quot;@action&quot;, action)
@@ -57,5 +55,29 @@ module Gluestick
       interaction
     end
 
+    def self.create_for_action(action)
+      action = action.downcase
+      # Would've extracted this out into a constant, but the classes
+      # are not defined and throws NameErrors
+	    @@interactions = {
+        :looked        =&gt; Gluestick::LookedInteraction,
+        :liked         =&gt; Gluestick::LikedInteraction,
+        :comment       =&gt; Gluestick::CommentInteraction,
+        :likedcomment  =&gt; Gluestick::LikedCommentInteraction,
+        :reply         =&gt; Gluestick::ReplyInteraction
+	    }
+      
+      if @@interactions.has_key?(action.to_sym)
+        @@interactions[action.to_sym].create
+      else
+        create
+      end
+    end
   end
+
+  class LookedInteraction &lt; Interaction; end
+  class LikedInteraction &lt; Interaction; end
+  class CommentInteraction &lt; Interaction; end
+  class LikedCommentInteraction &lt; Interaction; end
+  class ReplyInteraction &lt; Interaction; end
 end</diff>
      <filename>lib/gluestick/interaction.rb</filename>
    </modified>
    <modified>
      <diff>@@ -43,6 +43,11 @@ module Gluestick
       self.class.assign_variables_from_response(self, response)
     end
 
+    def users
+      response = Gluestick.get(&quot;/object/users&quot;, :query =&gt; { :objectId =&gt; @objectKey })
+      Gluestick::Interaction.from_response(response)
+    end
+
     protected
 
     def self.create</diff>
      <filename>lib/gluestick/object.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,6 +21,11 @@ module Gluestick
       @friends = @friends.map{ |friend| User.new(friend) }
     end
 
+    def objects
+      response = Gluestick.get(&quot;/user/objects&quot;, :query =&gt; { :userId =&gt; @username })
+      @interactions = Gluestick::Interaction.from_response(response)
+    end
+
     def follow(other_user)
       other_user = other_user.username if other_user.instance_of?(Gluestick::User)
       response = Gluestick.get(&quot;/user/follow&quot;, :query =&gt; { :userId =&gt; other_user })</diff>
      <filename>lib/gluestick/user.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,15 +13,16 @@ class InteractionTest &lt; Test::Unit::TestCase
     lambda { Gluestick::Interaction.from_response([]) }.should raise_error
     @interactions = Gluestick::Interaction.from_response(response)
     @interactions.should be_instance_of(Array)
-    @interactions[0].should be_instance_of(Gluestick::Interaction)
+    @interactions[0].should be_kind_of(Gluestick::Interaction)
   end
 
   should &quot;return a single interaction if response is a single interaction&quot; do
     stub_get(&quot;/user/addReply&quot;, &quot;interactions/add_reply.xml&quot;)
     response = Gluestick.get(&quot;/user/addReply&quot;)
     @interaction = Gluestick::Interaction.from_response(response)
-    @interaction.should be_instance_of(Gluestick::Interaction)
-    @interaction.should_not be_instance_of(Array)
+
+    @interaction.should be_instance_of(Gluestick::ReplyInteraction)
+    @interaction.should be_kind_of(Gluestick::Interaction)
   end
 
   context &quot;single interaction&quot; do</diff>
      <filename>test/gluestick/interaction_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -71,5 +71,28 @@ class ObjectTest &lt; Test::Unit::TestCase
     end
   end
 
+  context &quot;users call&quot; do
+    setup do
+      stub_get(&quot;/object/users?objectId=movies%2Fslumdog_millionaire%2Fdanny_boyle&quot;, &quot;interactions/users.xml&quot;)
+      stub_get(&quot;/object/get?objectId=mock_object&quot;, &quot;object/get.xml&quot;)
+
+      @mock_object = mock_object_from_object
+      @interactions = @mock_object.users
+    end
+
+    should &quot;return with an array in interactions&quot; do
+      @interactions.should be_instance_of(Array)
+      @interactions[0].should be_kind_of(Gluestick::Interaction)
+    end
+
+    should &quot;be the same object&quot; do
+      @interactions[0].object.class.should == @mock_object.class
+    end
+
+    should &quot;have 250 of the latest interactions&quot; do
+      @interactions.length.should == 250
+    end
+  end
+
 end
 </diff>
      <filename>test/gluestick/object_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -103,6 +103,23 @@ class UserTest &lt; Test::Unit::TestCase
     end
   end
 
+  context &quot;getting user objects&quot; do
+    setup do
+      stub_get(&quot;/user/objects?userId=someuser&quot;, &quot;user/objects.xml&quot;)
+      @user = Gluestick::User.new('someuser')
+      @interactions = @user.objects
+    end
+
+    should &quot;return an array of interactions&quot; do
+      @interactions.should be_instance_of(Array)
+      @interactions[0].should be_kind_of(Gluestick::Interaction)
+    end
+
+    should &quot;have multiple objects&quot; do
+      @interactions.length.should &gt; 0
+    end
+  end
+
 end
 
 </diff>
      <filename>test/gluestick/user_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8a2d8f49aa010f00915dea4b5b8fbc25a0e26572</id>
    </parent>
  </parents>
  <author>
    <name>bdotdub</name>
    <email>bdotdub@gmail.com</email>
  </author>
  <url>http://github.com/bdotdub/gluby/commit/e52d350694455c0fd8dc233c1a7c821c1ccbb1e9</url>
  <id>e52d350694455c0fd8dc233c1a7c821c1ccbb1e9</id>
  <committed-date>2009-05-29T18:43:36-07:00</committed-date>
  <authored-date>2009-05-29T18:43:36-07:00</authored-date>
  <message>there are now differenct interactions (ie. ReplyInteraction, LookedInteraction, etc). also added user.objects and object.users</message>
  <tree>c9ecabe4306e2c5cb58855aa24d93881f55194fc</tree>
  <committer>
    <name>bdotdub</name>
    <email>bdotdub@gmail.com</email>
  </committer>
</commit>
