Sha256: bae24c638275df10a7a17469e926717d0973e64fd4cf8fca6c7f8d4a054991fe

Contents?: true

Size: 1.23 KB

Versions: 9

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module Vedeu

  module Buffers

    # Provides a grid of Vedeu::Cells::Empty objects at the given
    # height and width.
    #
    # @api private
    #
    class Empty

      include Vedeu::Repositories::Defaults

      # @!attribute [r] name
      # @return [NilClass|String|Symbol]
      attr_reader :name

      # @!attribute [r] x
      # @return [Fixnum]
      attr_reader :x

      # @!attribute [r] y
      # @return [Fixnum]
      attr_reader :y

      # @return [Array<Array<Vedeu::Cells::Empty>>]
      def buffer
        @buffer ||= empty
      end

      # @return [Fixnum]
      def height
        @height + 1
      end

      # @return [Fixnum]
      def width
        @width + 1
      end

      private

      # @macro defaults_method
      def defaults
        {
          height: Vedeu.height,
          name:   nil,
          width:  Vedeu.width,
          x:      1,
          y:      1,
        }
      end

      # @return [Array<Array<Vedeu::Cells::Empty>>]
      def empty
        Array.new(height) do |h|
          Array.new(width) do |w|
            Vedeu::Cells::Empty.new(name: name, position: [(y + h), (x + w)])
          end
        end
      end

    end # Empty

  end # Buffers

end # Vedeu

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
vedeu-0.8.22 lib/vedeu/buffers/empty.rb
vedeu-0.8.21 lib/vedeu/buffers/empty.rb
vedeu-0.8.20 lib/vedeu/buffers/empty.rb
vedeu-0.8.19 lib/vedeu/buffers/empty.rb
vedeu-0.8.18 lib/vedeu/buffers/empty.rb
vedeu-0.8.17 lib/vedeu/buffers/empty.rb
vedeu-0.8.16 lib/vedeu/buffers/empty.rb
vedeu-0.8.15 lib/vedeu/buffers/empty.rb
vedeu-0.8.14 lib/vedeu/buffers/empty.rb