Sha256: 0e10492080311c274e44f6db94f8b96c4b38b61b000001040a8f5a9bf519177b

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

module Vedeu

  module Borders

    # Provides a non-existent Vedeu::Borders::Border that acts like
    # the real thing, but does nothing.
    #
    # @api private
    #
    class Null

      extend Forwardable

      def_delegators :geometry,
                     :bordered_width,
                     :bordered_height,
                     :bx,
                     :bxn,
                     :by,
                     :byn,
                     :x,
                     :xn,
                     :y,
                     :yn

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

      # Returns a new instance of Vedeu::Borders::Null.
      #
      # @param attributes [Hash<Symbol => void>]
      # @option attributes name [String|Symbol|NilClass]
      # @return [Vedeu::Borders::Null]
      def initialize(attributes = {})
        @attributes = attributes
        @name       = @attributes[:name]
      end

      # @return [Boolean]
      def enabled?
        false
      end

      # @return [Array]
      def render
        []
      end

      private

      # Returns the geometry for the interface.
      #
      # @return (see Vedeu::Geometry::Repository#by_name)
      def geometry
        @geometry ||= Vedeu.geometries.by_name(name)
      end

    end # Null

  end # Borders

end # Vedeu

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vedeu-0.6.59 lib/vedeu/borders/null.rb
vedeu-0.6.58 lib/vedeu/borders/null.rb
vedeu-0.6.57 lib/vedeu/borders/null.rb