Sha256: b8141effd4bafa3e5339cc57d151f794f238efb8a5088171047a1a3a4544be31

Contents?: true

Size: 1.24 KB

Versions: 5

Compression:

Stored size: 1.24 KB

Contents

# coding: utf-8

module Thinreports
  module Core::Shape

    class List::SectionInterface < Base::Interface
      include Core::Shape::Manager::Target

      undef_method :list
      internal_delegators :height

      # @param [Thinreports::Core::Shape::List::Page] parent
      # @param [Thinreports::Core::Shape::List::SectionFormat] format
      # @param [Symbol] section_name
      def initialize(parent, format, section_name)
        super(parent, format)
        internal.section_name = section_name

        initialize_manager(format) do |f|
          Core::Shape::Interface(self, f)
        end
      end

      # @param [Thinreports::Core::Shape::List::Page] parent
      # @return [Thinreports::Core::Shape::List::SectionInterface]
      def copy(parent)
        new_sec = super
        new_sec.internal.section_name = internal.section_name

        manager.shapes.each do |id, shape|
          new_sec.manager.shapes[id] = shape.copy(new_sec)
        end
        new_sec
      end

    private

      # @param parent (see #initialize)
      # @param format (see #initialize)
      # @return [Thinreports::Core::Shape::List::SectionInternal]
      def init_internal(parent, format)
        List::SectionInternal.new(parent, format)
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
thinreports-0.9.1 lib/thinreports/core/shape/list/section_interface.rb
thinreports-0.9.0 lib/thinreports/core/shape/list/section_interface.rb
thinreports-0.8.2 lib/thinreports/core/shape/list/section_interface.rb
thinreports-0.8.1 lib/thinreports/core/shape/list/section_interface.rb
thinreports-0.8.0 lib/thinreports/core/shape/list/section_interface.rb