Sha256: bbdad93855d7ffd15f2585ef1d3849ab321e48a08d653cf61d37d32ae6db3450

Contents?: true

Size: 1.7 KB

Versions: 11

Compression:

Stored size: 1.7 KB

Contents

module Vedeu

  module Null

    # Provides a non-existent model to swallow messages.
    #
    # @api private
    class Geometry

      extend Forwardable

      def_delegators :area,
                     :north,
                     :east,
                     :south,
                     :west,
                     :top,
                     :right,
                     :bottom,
                     :left,
                     :y,
                     :xn,
                     :yn,
                     :x,
                     :height,
                     :width

      # @!attribute [rw] maximised
      # @return [Boolean]
      attr_accessor :maximised

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

      # Returns a new instance of Vedeu::Null::Geometry.
      #
      # @param name [String|NilClass]
      # @return [Vedeu::Null::Geometry]
      def initialize(name = nil)
        @name      = name
        @maximised = false
      end

      # @return [FalseClass]
      def centred
        false
      end

      # @return [FalseClass]
      def maximise
        false
      end

      # @return [Vedeu::Null::Geometry]
      def store
        self
      end

      # @return [FalseClass]
      def unmaximise
        false
      end

      private

      # @return [Vedeu::Area]
      def area
        @area ||= Vedeu::Area.from_dimensions(y_yn: y_yn, x_xn: x_xn)
      end

      # @return [Array<Fixnum>]
      def x_xn
        @x_xn ||= Vedeu::Dimension.pair(default: Vedeu::Terminal.width)
      end

      # @return [Array<Fixnum>]
      def y_yn
        @y_yn ||= Vedeu::Dimension.pair(default: Vedeu::Terminal.height)
      end

    end # Geometry

  end # Null

end # Vedeu

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
vedeu-0.4.43 lib/vedeu/null/geometry.rb
vedeu-0.4.42 lib/vedeu/null/geometry.rb
vedeu-0.4.41 lib/vedeu/null/geometry.rb
vedeu-0.4.40 lib/vedeu/null/geometry.rb
vedeu-0.4.39 lib/vedeu/null/geometry.rb
vedeu-0.4.38 lib/vedeu/null/geometry.rb
vedeu-0.4.37 lib/vedeu/null/geometry.rb
vedeu-0.4.36 lib/vedeu/null/geometry.rb
vedeu-0.4.35 lib/vedeu/null/geometry.rb
vedeu-0.4.34 lib/vedeu/null/geometry.rb
vedeu-0.4.33 lib/vedeu/null/geometry.rb