<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>doc/classes/Collection.html</filename>
    </added>
    <added>
      <filename>doc/classes/Collection.src/M000001.html</filename>
    </added>
    <added>
      <filename>doc/classes/Collection.src/M000002.html</filename>
    </added>
    <added>
      <filename>doc/classes/Collection.src/M000003.html</filename>
    </added>
    <added>
      <filename>doc/classes/Collection.src/M000004.html</filename>
    </added>
    <added>
      <filename>doc/classes/Collection.src/M000005.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource.src/M000006.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource.src/M000007.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Connection.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Connection.src/M000012.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Connection.src/M000013.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Resource.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Resource.src/M000008.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Resource.src/M000009.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Resource.src/M000010.html</filename>
    </added>
    <added>
      <filename>doc/classes/OAuthActiveResource/Resource.src/M000011.html</filename>
    </added>
    <added>
      <filename>doc/created.rid</filename>
    </added>
    <added>
      <filename>doc/files/lib/oauth_active_resource/collection_rb.html</filename>
    </added>
    <added>
      <filename>doc/files/lib/oauth_active_resource/connection_rb.html</filename>
    </added>
    <added>
      <filename>doc/files/lib/oauth_active_resource/resource_rb.html</filename>
    </added>
    <added>
      <filename>doc/files/lib/oauth_active_resource_rb.html</filename>
    </added>
    <added>
      <filename>doc/fr_class_index.html</filename>
    </added>
    <added>
      <filename>doc/fr_file_index.html</filename>
    </added>
    <added>
      <filename>doc/fr_method_index.html</filename>
    </added>
    <added>
      <filename>doc/index.html</filename>
    </added>
    <added>
      <filename>doc/rdoc-style.css</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -4,10 +4,30 @@ require 'digest/md5'
 module OAuthActiveResource
 
   # TODO check if klass has ancestor OAuthActiveResource
-  def self.register(add_to_module, model_module,oauth_connection=nil)
+  def self.register(add_to_module, model_module, options = {})
+    
+    oauth_connection = options[:access_token]
+    site = options[:site]
+#    if options[:access_token].nil?
+#      access_token = nil
+#      if options[:site].nil?
+#        raise 'Need an oauth :access_token or a :site'
+#      else
+#        site = options[:site]
+#      end
+#    else
+#      if options[:site].nil?
+#        site = access_token.consumer.site
+#      else
+#       site = options[:site]
+#      end      
+#    end
+    
     mod = Module.new do
       model_module.constants.each do |klass|
+        # TODO check if klass.is_a OAuthActiveResource
         sub = Class.new(model_module.const_get(klass)) do
+          self.site = site          
           @oauth_connection = oauth_connection
         end
         const_set(klass, sub)
@@ -25,7 +45,7 @@ module OAuthActiveResource
     if oauth_connection.nil?
       dynamic_module_name = &quot;AnonymousConsumer&quot;
     else
-      hash = Digest::MD5.digest(&quot;#{oauth_connection.token}#{oauth_connection.secret}&quot;)      
+      hash = Digest::MD5.hexdigest(&quot;#{oauth_connection.token}#{oauth_connection.secret}&quot;)      
       dynamic_module_name = &quot;OAuthConsumer#{hash}&quot;
     end
     
@@ -35,6 +55,8 @@ module OAuthActiveResource
   
 end
 
+
 require 'oauth_active_resource/connection'
 require 'oauth_active_resource/resource'
+require 'oauth_active_resource/collection'
 </diff>
      <filename>lib/oauth_active_resource.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-module OAuthActiveResource
+apimodule OAuthActiveResource
   # see has_many in Resource
   class Collection &lt; Set
     def initialize(connection, resource, collection_uri)        
@@ -17,7 +17,6 @@ module OAuthActiveResource
       raise &quot;NotImplemented&quot;
     end
     
-    # TODO extract api.soundcloud.com
     def save
       @connection.put(&quot;#{@resource.class.site}#{@collection_uri}&quot;,self.to_json,{ 'Accept'=&gt;'application/json', 'Content-Type' =&gt; 'application/json' })
     end</diff>
      <filename>lib/oauth_active_resource/collection.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,22 @@
 module OAuthActiveResource
+
   class Connection &lt; ActiveResource::Connection
     def initialize(oauth_connection, *args)    
       @oauth_connection = oauth_connection
       super(*args)
     end
 
-    def get_no_decode(path, headers = {})
+    # an alternative for the get method, which doesnt tries to decode the response
+    def get_without_decoding(path, headers = {})
       request(:get, path, build_request_headers(headers, :get))
     end
     
    private
-    def request(method, path, *arguments)     
+    def request(method, path, *arguments)    
       if @oauth_connection == nil
         super(method, path, *arguments)
       else
-        result = @oauth_connection.send(method, path, *arguments) 
+        result = @oauth_connection.send(method, &quot;#{site.scheme}://#{site.host}:#{site.port}#{path}&quot;, *arguments) 
         handle_response(result)
       end
     rescue Timeout::Error =&gt; e </diff>
      <filename>lib/oauth_active_resource/connection.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ module OAuthActiveResource
     class &lt;&lt; self
       attr_accessor :oauth_connection
     end
-
+    
     def self.connection(refresh = false)
       @connection = Connection.new(oauth_connection, site,format) if @connection.nil? || refresh
       @connection.timeout = timeout if timeout      
@@ -25,27 +25,27 @@ module OAuthActiveResource
       self.id = self.uri.split('/').last if self.id.nil? and defined? self.uri
     end
      
-    # Associations
-    # has_many allows resources with sub-resources which arent nested to be accessable
+    # has_many allows resources with sub-resources which arent nested to be accessable.
+    #
     # Example:
     # User 123 (http://example.com/users/123/) has many friends
     # The list of friends can be accessed by http://example.com/users/123/friends
     # Our class definition:
     # 
-    # class User &lt; Resource
-    #   has_many :friends
-    # end
+    #   class User &lt; Resource
+    #     has_many :friends
+    #   end
     # 
-    # user = User.find(123)
-    # user.friends.each do |friend|
-    #   p friend.name
-    # end
+    #   user = User.find(123)
+    #   user.friends.each do |friend|
+    #     p friend.name
+    #   end
     # 
-    # # adding a friend 
-    # stranger = User.find(987)
-    # user.friends &lt;&lt; stranger
-    # user.friends.save
-    # =&gt; sends a PUT with collection of friends to http://example.com/users/123/friends
+    #   # adding a friend 
+    #   stranger = User.find(987)
+    #   user.friends &lt;&lt; stranger
+    #   user.friends.save
+    #  =&gt; sends a PUT with collection of friends to http://example.com/users/123/friends
     
     def self.has_many(*args)
       args.each do |k| 
@@ -65,79 +65,8 @@ module OAuthActiveResource
       end
     end
     
-    # has_many_unbulky_changeable and can_be_an_unbulky_changeable is used in combination with has_many
-    # it expects to have a resource http://example.com/me which is the logged-in user
-    # Example:
-    # like in self.has_many you have a resource user with a sub resource friends,
-    # but its not allowed to send a PUT /me/friends to update the list of friends
-    # instead to add or remove a friend you send a GET/PUT/DELETE to /me/friends/{user_id}
-    # class User &lt; Resource
-    #   has_many :friends
-    #   can_be_an_unbulky_changeable :friend
-    #   has_many_unbulky_changeable :friends
-    # end
-    #
-    # me = User.find(:one, :from =&gt; '/me')
-    # friend = me.friends.first
-    # stranger = User.find(235)
-    # 
-    # friend.is_friend?
-    # =&gt; true
-    # stranger.is_friend?
-    # =&gt; false
-    #
-    # strange.add_friend!
-    # stranger.is_friend?
-    # =&gt; true
-    #
-    # stranger.remove_friend!
-    # stranger.is_friend?
-    # =&gt; false    
-    #
-    # friend.has_friend?(stranger.id)
-    # =&gt; checks if stranger and friend are friend, returns true or false
     
-    def self.can_be_an_unbulky_changeable(*args)
-      args.each do |k| 
-        singular = k.to_s
-        define_method(&quot;is_#{singular}?&quot;) do
-          begin
-            self.connection.get_no_decode &quot;/me/#{singular.pluralize}/#{self.id}&quot;
-            return true
-          rescue ActiveResource::ResourceNotFound
-            return false
-          end
-        end
-        
-        define_method(&quot;add_#{singular}!&quot;) do
-        p &quot;add #{singular}&quot;
-        p &quot;/me/#{singular.pluralize}/#{self.id}&quot;
-          self.connection.put &quot;/me/#{singular.pluralize}/#{self.id}&quot;
-        end                    
-
-        define_method(&quot;remove_#{singular}!&quot;) do
-          self.connection.delete &quot;/me/#{singular.pluralize}/#{self.id}&quot;
-        end                
-      end    
-    end
-        
-    def self.has_many_unbulky_changeable(*args)
-      args.each do |k| 
-        singular = k.to_s.singularize
-        define_method(&quot;has_#{singular}?&quot;) do |look_for_id|
-          begin
-            head,body = self.connection.get_no_decode &quot;/#{self.element_name.pluralize}/#{self.id}/#{singular.pluralize}/#{look_for_id}&quot;
-            p head
-            p body
-            return true
-          rescue ActiveResource::ResourceNotFound
-            return false
-          end          
-        end
-      end    
-    end
-    
-    # self.send_multipart_request allows you to POST/PUT an oauth authenticated multipart request
+    # allows you to POST/PUT an oauth authenticated multipart request
     def self.send_multipart_request(method,path,file_param_name,file,params={})
       req = Net::HTTP::Post.new(path)
       if method == :put
@@ -155,32 +84,4 @@ module OAuthActiveResource
       res
     end
   end
-  
-  # see self.has_many
-  class Collection &lt; Set
-    def initialize(connection, resource, collection_uri)        
-      super()
-      @connection = connection
-      @collection_uri = collection_uri
-      @resource = resource
-      reload
-    end
-   
-    def to_json
-      return &quot;[ #{self.map { |obj| obj.to_json }.join(',')} ]&quot;
-    end
-    
-    def to_xml
-      raise &quot;NotImplemented&quot;
-    end
-    
-    # TODO extract api.soundcloud.com
-    def save
-      @connection.put(&quot;#{@resource.class.site}#{@collection_uri}&quot;,self.to_json,{ 'Accept'=&gt;'application/json', 'Content-Type' =&gt; 'application/json' })
-    end
-    
-    def reload
-      self.replace(@resource.find(:all, :from =&gt; @collection_uri))
-    end
-  end
 end</diff>
      <filename>lib/oauth_active_resource/resource.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9ce5915e0347107a4ef33913caf3dcd3cf1d8592</id>
    </parent>
  </parents>
  <author>
    <name>jwagener</name>
    <email>johannes@wagener.cc</email>
  </author>
  <url>http://github.com/jwagener/oauth-active-resource/commit/256c99769ac8862f4e21cfaae63d475d4348596f</url>
  <id>256c99769ac8862f4e21cfaae63d475d4348596f</id>
  <committed-date>2009-05-14T07:10:33-07:00</committed-date>
  <authored-date>2009-05-14T07:10:33-07:00</authored-date>
  <message>cleanup and documentation</message>
  <tree>7f35104ec8d6fa07d89eed56af53a7fb0b541d28</tree>
  <committer>
    <name>jwagener</name>
    <email>johannes@wagener.cc</email>
  </committer>
</commit>
