Sha256: f174d8b70eedba384b5401ef11c4ea4def4098f5fcc34e5b0c03783db65d4182

Contents?: true

Size: 1.27 KB

Versions: 7

Compression:

Stored size: 1.27 KB

Contents

module Vedeu

  module Geometries

    # Provide position functionality to the including model.
    #
    # @api private
    #
    module Positionable

      # Gets the position.
      #
      # @return [Vedeu::Geometries::Position]
      def position
        @_position ||= Vedeu::Geometries::Position.coerce(@position)
      end

      # Sets the position.
      #
      # @param value [Array<void>|Hash<void>|
      #   Vedeu::Geometries::Position]
      # @return [Vedeu::Geometries::Position]
      def position=(value)
        @_position = @position = Vedeu::Geometries::Position.coerce(value)
      end

      # Returns a boolean indicating the position attribute of the
      # including model is set.
      #
      # @return [Boolean]
      def position?
        position.is_a?(Vedeu::Geometries::Position)
      end

      # Returns the x coordinate for the model when the position
      # attribute of the including model is set.
      #
      # @return [Fixnum|NilClass]
      def x
        position.x if position?
      end

      # Returns the y coordinate for the model when the position
      # attribute of the including model is set.
      #
      # @return [Fixnum|NilClass]
      def y
        position.y if position?
      end

    end # Positionable

  end # Geometries

end # Vedeu

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
vedeu-0.8.0 lib/vedeu/geometries/positionable.rb
vedeu-0.7.4 lib/vedeu/geometries/positionable.rb
vedeu-0.7.3 lib/vedeu/geometries/positionable.rb
vedeu-0.7.2 lib/vedeu/geometries/positionable.rb
vedeu-0.7.1 lib/vedeu/geometries/positionable.rb
vedeu-0.7.0 lib/vedeu/geometries/positionable.rb
vedeu-0.6.71 lib/vedeu/geometries/positionable.rb