Sha256: 22754c3c0704bb9c548897f0c4e5b36745920d6ca1ce012e4f2949c37c99f148

Contents?: true

Size: 1.58 KB

Versions: 5

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

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

            undef_method :list
            internal_delegators :height

            # @param [Thinreports::BasicReport::Core::Shape::List::Page] parent
            # @param [Thinreports::BasicReport::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::BasicReport::Core::Shape::List::Page] parent
            # @return [Thinreports::BasicReport::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::BasicReport::Core::Shape::List::SectionInternal]
            def init_internal(parent, format)
              List::SectionInternal.new(parent, format)
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
thinreports-0.14.2 lib/thinreports/basic_report/core/shape/list/section_interface.rb
thinreports-0.14.1 lib/thinreports/basic_report/core/shape/list/section_interface.rb
thinreports-0.14.0 lib/thinreports/basic_report/core/shape/list/section_interface.rb
thinreports-0.13.1 lib/thinreports/basic_report/core/shape/list/section_interface.rb
thinreports-0.13.0 lib/thinreports/basic_report/core/shape/list/section_interface.rb