Sha256: d767e53d4097efb24deadc12d804cfe23d75254af805994a077540bcf9e0dbf8

Contents?: true

Size: 781 Bytes

Versions: 3

Compression:

Stored size: 781 Bytes

Contents

# coding: utf-8

module Thinreports
  module Generator

    # @abstract
    class Base
      # @return [Thinreports::Report::Base]
      attr_reader :report

      # @return [Hash]
      attr_reader :options

      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

      # @param [String, nil] filename
      # @return [String, nil]
      # @abstract
      def generate
        raise NotImplementedError
      end

      def default_layout
        report.default_layout
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
thinreports-0.9.1 lib/thinreports/generator/base.rb
thinreports-0.9.0 lib/thinreports/generator/base.rb
thinreports-0.8.2 lib/thinreports/generator/base.rb