Sha256: 74f4b2cf32756ad025ce3b5e5a8285c9d9885db6eee102adae4c1a5cb76512b3

Contents?: true

Size: 987 Bytes

Versions: 5

Compression:

Stored size: 987 Bytes

Contents

# coding: utf-8

module ThinReports
  module Generator
    
    # @abstract
    class Base
      # @return [ThinReports::Report::Base]
      # @private
      attr_reader :report

      # @return [Hash]
      # @private
      attr_reader :options
      
      # @private
      def self.inherited(g)
        Generator.register(g.name.split('::').last.downcase.to_sym, g);
      end
      
      # @param [ThinReports::Report::Base] report
      # @param [Hash] options
      def initialize(report, options = {})
        report.finalize
        
        @report  = report.internal
        @options = options || {}
      end
      
      # @return [String]
      # @abstract
      def generate
        raise NotImplementedError
      end
      
      # @param [String] filename
      # @abstract
      def generate_file(filename)
        raise NotImplementedError
      end
      
      # @private
      def default_layout
        report.default_layout
      end      
    end
    
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
thinreports-0.7.7 lib/thinreports/generator/base.rb
thinreports-0.7.6 lib/thinreports/generator/base.rb
thinreports-0.7.5 lib/thinreports/generator/base.rb
thinreports-0.7.0 lib/thinreports/generator/base.rb
thinreports-0.6.0.pre3 lib/thinreports/generator/base.rb