<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -15,4 +15,4 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 
 COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 
 IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file</diff>
      <filename>LICENSE</filename>
    </modified>
    <modified>
      <diff>@@ -31,6 +31,13 @@ Run it:
 
 
 ==========
+Thanks
+==========
+
+Thanks to PackRat (http://apps.facebook.com/packrat/), from which this code was extracted.
+
+
+==========
 Contributors
 ==========
 </diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,17 @@
+- better logging -- use rack's logger when the proxy is used; otherwise pass in a logger to Application?
+- get rid of Fakebook::Proxy.rack -- the mongrel-specific stuff should be elsewhere, like in the bin
+- is there a ruby way of doing the benchmarking stuff?
+
+   #start_time = Time.now
+   #...
+   #end_time = Time.now
+   #STDERR.puts &quot;[#{end_time - start_time}] #{path}&quot;
+
+- allow for a template to be specified when initializing Fakebook::Proxy -- even pass in your own full path?
+- the &quot;Starting Fakebook proxy...&quot; thing probably belongs in the bin
+- make the command-line UI friendlier
+- better getting-started docs
+- accept a yaml file to set up default_params, as well as other facebook-knowledge
 - the set_default_params thing sucks
 - parse fbml better
    - if-is-user
@@ -7,6 +21,4 @@
    - comments
    - possessive names
    - share_button
-- accept a yaml file to set up default_params, as well as other facebook-knowledge
-- make the command-line UI friendlier
 - respond to regular API requests?</diff>
      <filename>TODO</filename>
    </modified>
    <modified>
      <diff>@@ -3,11 +3,7 @@
 require File.dirname(__FILE__) + '/../lib/fakebook'
  
 #Fakebook.start ARGV
-
 #fb_id = YAML.load_file(&quot;config/facebook.yml&quot;)['development'][ENV['USER']]['infinite_session_uid']
-
 fb_id = 123
-
 # TODO: check if fakebook.yml exists in ./config, and then overwrite with command-line values passed in
-
 Fakebook::Proxy.rack(&quot;http://0.0.0.0:5000/packrat/&quot;, &quot;http://0.0.0.0:3000/facebook/&quot;, &quot;app-secret&quot;, { :user =&gt; fb_id, :session_key =&gt; 'session-key', :friends =&gt; &quot;2,3,4&quot; })</diff>
      <filename>bin/fakebook</filename>
    </modified>
    <modified>
      <diff>@@ -17,20 +17,15 @@ module Fakebook
       @default_params = params.merge(:in_canvas =&gt; 1, :expires =&gt; 0, :added =&gt; 1)
     end
 
-    # todo: use rack's logger mechanism?
     def request(path, params={})
       url = URI.parse(@callback_url + path.gsub(Regexp.new('^' + @canvas_path), ''))
       path_and_query_string = &quot;#{url.path}?#{url.query}&quot;
       body = sign(params).map{ |a| &quot;#{a.first}=#{a.last}&quot; }.join('&amp;')
-      #start_time = Time.now
       response = Net::HTTP.new(url.host, url.port).post(path_and_query_string, body)
-      #end_time = Time.now
-      #STDERR.puts &quot;[#{end_time - start_time}] #{path}&quot;
       response
     end
 
     private
-          
       def sign(params)
         params_to_sign = (@default_params || {}).merge(:time =&gt; Time.now.to_f)
         raw_string = params_to_sign.map{ |pair| pair.join('=') }.sort.join + @app_secret
@@ -44,7 +39,14 @@ module Fakebook
 
   class Proxy
     
-    # this doesn't seem right
+    def initialize(canvas_url, callback_url, app_secret, default_params={})
+      @app_id = '2431403991'
+      @canvas_url = URI.parse(canvas_url)
+      @application = Application.new(callback_url, @canvas_url.path, app_secret)
+      @application.set_default_params(default_params)
+      STDERR.puts &quot;Starting Fakebook proxy from #{canvas_url} to #{callback_url}&quot;
+    end
+
     def self.rack(canvas_url, callback_url, app_secret, default_params={})
       app = Rack::Builder.new do 
         use Rack::ShowExceptions 
@@ -53,14 +55,6 @@ module Fakebook
       end
       Rack::Handler::Mongrel.run(app, :Port =&gt; URI.parse(canvas_url).port)
     end
-    
-    def initialize(canvas_url, callback_url, app_secret, default_params={})
-      @app_id = '2431403991'
-      @canvas_url = URI.parse(canvas_url)
-      @application = Application.new(callback_url, @canvas_url.path, app_secret)
-      @application.set_default_params(default_params)
-      STDERR.puts &quot;Starting Fakebook proxy from #{canvas_url} to #{callback_url}&quot;
-    end
 
     def call(env)
       req = Rack::Request.new(env)
@@ -77,7 +71,6 @@ module Fakebook
     end
 
     private
-
       def parse_fbml(body, template='standard.html.erb')
         body.gsub! /&lt;fb:name .*?&gt;/, '[name]'
         body.gsub! /&lt;fb:title&gt;(.*)&lt;\/fb:title&gt;/, ''</diff>
      <filename>lib/fakebook.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>07849f6590e3d05eeec52f795f9fcd9c3efe734a</id>
    </parent>
  </parents>
  <author>
    <name>Scott Raymond</name>
    <email>sco@scottraymond.net</email>
  </author>
  <url>http://github.com/collectiveidea/fakebook/commit/e41d30090f6b7fed07f175e3755c77b74e3a3faa</url>
  <id>e41d30090f6b7fed07f175e3755c77b74e3a3faa</id>
  <committed-date>2008-03-13T16:59:57-07:00</committed-date>
  <authored-date>2008-03-13T16:59:57-07:00</authored-date>
  <message>cleaned up comments and TODO</message>
  <tree>51b4ec243d841f96818fc734124d4a1b974f64fb</tree>
  <committer>
    <name>Scott Raymond</name>
    <email>sco@scottraymond.net</email>
  </committer>
</commit>
