def banner(options = {}, &block)
      options = {
        :comment => :js
      }.update(options)
      
      if block_given?
        @_banner = yield.to_s
      elsif !@_banner
        banner = []
        banner << "Version : #{self.scm.version}"
        banner << "Date  : #{self.scm.date.strftime("%Y-%m-%d")}"

        size = banner.inject(0){|mem,b| b.size > mem ? b.size : mem }
        banner.map!{|b| "= #{b.ljust(size)} =" }
        div = "=" * banner.first.size
        banner.unshift(div)
        banner << div
        @_banner = banner.join("\n")
      end
      
      if options[:comment]
        self.comment(@_banner, :style => options[:comment])
      else
        @_banner
      end
    end
def banner(options = {}, &block)
      options = {
        :comment => :js
      }.update(options)
      
      if block_given?
        @_banner = yield.to_s
      elsif !@_banner
        banner = []
        banner << "Version : #{self.scm.version}"
        banner << "Date  : #{self.scm.date.strftime("%Y-%m-%d")}"

        size = banner.inject(0){|mem,b| b.size > mem ? b.size : mem }
        banner.map!{|b| "= #{b.ljust(size)} =" }
        div = "=" * banner.first.size
        banner.unshift(div)
        banner << div
        @_banner = banner.join("\n")
      end
      
      if options[:comment]
        self.comment(@_banner, :style => options[:comment])
      else
        @_banner
      end
    end
Generates a banner if a block is given, or returns the currently set banner.
 It automatically takes care of adding comment marks around the banner.

 The default banner looks like this:

 =======================
 = Version : v1.0.0    =
 = Date : 2012-06-20   =
 =======================


 @option options [:css,:js,:html,false] :comment Wether or not to comment the output and in what style. (default=js)