<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>examples/anon.rb</filename>
    </added>
    <added>
      <filename>test/controller_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -184,9 +184,30 @@ class Ruport::Controller
       as(format.to_sym, options.merge(:file =&gt; file))        
     end
   end
+
   
   
   class &lt;&lt; self
+
+    def built_in_formats
+     { :html =&gt; Ruport::Formatter::HTML,
+       :csv  =&gt; Ruport::Formatter::CSV,
+       :pdf  =&gt; Ruport::Formatter::PDF,
+       :text =&gt; Ruport::Formatter::Text }
+    end
+
+    def formatter(*a,&amp;b)
+      case a[0]
+      when Symbol
+        klass = Class.new(built_in_formats[a[0]])
+        klass.renders a[0], :for =&gt; self
+      when Hash
+        k,v = a[0].to_a[0]
+        klass = Class.new(v)
+        klass.renders k, :for =&gt; self
+      end
+      klass.class_eval(&amp;b)
+    end
     
     attr_accessor :first_stage,:final_stage,:required_options,:stages #:nodoc: 
     </diff>
      <filename>lib/ruport/controller.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>test/renderer_test.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>96fdb868562dc08d48da67c54da6f27389c92ce9</id>
    </parent>
  </parents>
  <author>
    <name>sandal</name>
    <email>sandal@bb2e8eb0-7117-0410-aac4-c024b40ed5f7</email>
  </author>
  <url>http://github.com/ruport/ruport/commit/bc1b6e841754aa9c4754e3b8ddaa9decaf66d930</url>
  <id>bc1b6e841754aa9c4754e3b8ddaa9decaf66d930</id>
  <committed-date>2008-03-31T12:13:50-07:00</committed-date>
  <authored-date>2008-03-31T12:13:50-07:00</authored-date>
  <message>fix for r385, inspired by Brian's implementation

git-svn-id: http://stonecode.svnrepository.com/svn/ruport/ruport/trunk@1292 bb2e8eb0-7117-0410-aac4-c024b40ed5f7</message>
  <tree>28b95a20d3cb762cd80e0e448892942d954c95bf</tree>
  <committer>
    <name>sandal</name>
    <email>sandal@bb2e8eb0-7117-0410-aac4-c024b40ed5f7</email>
  </committer>
</commit>
