Sha256: bff41a1c3f9ddff3136f9c4409abc2a0eb39965c86fbf91b15bc2e3f70213d80

Contents?: true

Size: 890 Bytes

Versions: 3

Compression:

Stored size: 890 Bytes

Contents

# coding: utf-8

module Thinreports
  module Core::Shape

    # @abstract
    class Base::Interface
      include Utils
      extend  Forwardable

      def self.internal_delegators(*args)
        def_delegators :internal, *args
      end
      private_class_method :internal_delegators

      attr_reader :internal

      def initialize(parent, format, internal = nil)
        @internal = internal || init_internal(parent, format)
      end

      def copy(parent)
        self.class.new(parent, internal.format, internal.copy(parent))
      end

    private

      # @param [Thinreports::Report::Page, Thinreports::Core::Shape::List::SectionInterface] parent
      # @param [Thinreports::Core::Shape::Basic::Format] format
      # @return [Thinreports::Core::Shape::Basic::Internal]
      # @abstract
      def init_internal
        raise NotImplementedError
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
thinreports-0.9.1 lib/thinreports/core/shape/base/interface.rb
thinreports-0.9.0 lib/thinreports/core/shape/base/interface.rb
thinreports-0.8.2 lib/thinreports/core/shape/base/interface.rb