Changeset 1294

Show
Ignore:
Timestamp:
04/01/08 16:04:17 (8 months ago)
Author:
sandal
Message:

Basic documentation for anon formatters

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ruport/trunk/lib/ruport/controller.rb

    r1292 r1294  
    190190  class << self 
    191191 
     192    # Returns a hash that maps format names to their formatter classes, for use 
     193    # with the formatter shortcut.  Supported formats are :html, :csv, :pdf, and 
     194    # :text by default. 
     195    # 
     196    # 
     197    # Sample override: 
     198    # 
     199    #   class MyController < Ruport::Controller 
     200    #  
     201    #     def built_in_formats 
     202    #       super.extend(:xml => MyXMLFormatter, 
     203    #                    :json => MyJSONFormatter) 
     204    #     end 
     205    #   end  
     206    # 
     207    # This would allow for: 
     208    # 
     209    #   class ChildController < MyController 
     210    # 
     211    #     formatter :xml do 
     212    #       # ... 
     213    #     end 
     214    # 
     215    #     formatter :json do 
     216    #       # ... 
     217    #     end 
     218    #   end 
     219    #      
    192220    def built_in_formats 
    193221     { :html => Ruport::Formatter::HTML, 
     
    197225    end 
    198226 
     227 
     228    # Generates an anonymous formatter class and ties it to the Controller. 
     229    # This method looks up the built in formats in the hash returned by  
     230    # built_in_formats, but also explicitly specify a custom Formatter class to 
     231    # subclass from. 
     232    # 
     233    # Sample usage: 
     234    # 
     235    #   class ControllerWithAnonymousFormatters < Ruport::Controller 
     236    #    
     237    #     stage :report 
     238    #    
     239    #     formatter :html do 
     240    #       build :report do 
     241    #         output << textile("h1. Hi there") 
     242    #       end 
     243    #     end 
     244    #    
     245    #     formatter :csv do 
     246    #       build :report do 
     247    #         build_row([1,2,3]) 
     248    #       end 
     249    #     end 
     250    #    
     251    #     formatter :pdf do 
     252    #       build :report do 
     253    #         add_text "hello world" 
     254    #       end 
     255    #     end 
     256    #    
     257    #     formatter :text do 
     258    #       build :report do 
     259    #         output << "Hello world" 
     260    #       end 
     261    #     end 
     262    #    
     263    #     formatter :custom => CustomFormatter do 
     264    #    
     265    #       build :report do 
     266    #         output << "This is " 
     267    #         custom_helper 
     268    #       end 
     269    #    
     270    #     end 
     271    #    
     272    #   end 
     273    # 
    199274    def formatter(*a,&b) 
    200275      case a[0]