Sha256: c0166df3dbf04103c9779dfabde01bf7e67568d7fbef8b90220dad39ff1098f9
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
module Vedeu # Validates that the provided coordinates are within the terminal and # interface's geometry (with or without a border). # # @api private class PositionValidator extend Forwardable def_delegators :border, :bx, :bxn, :by, :byn # @!attribute [rw] x # @return [Fixnum] attr_accessor :x # @!attribute [rw] x # @return [Fixnum] attr_accessor :y # @param (see #initialize) def self.validate(name, x, y) new(name, x, y).validate end # Returns a new instance of Vedeu::PositionValidator. # # @param name [String] # @param x [Fixnum] # @param y [Fixnum] # @return [Vedeu::PositionValidator] def initialize(name, x, y) @name = name @x = x @y = y end # Ensures the coordinates provided are within the terminal, interface and # if applicable, bordered interface area. # # @return [PositionValidator] def validate @x = bx if x < bx @x = bxn if x > bxn @y = by if y < by @y = byn if y > byn self end protected # @!attribute [r] name # @return [String] attr_reader :name private # @see Vedeu::Borders#by_name def border @border ||= Vedeu.borders.by_name(name) end end # PositionValidator end # Vedeu
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.4.56 | lib/vedeu/geometry/position_validator.rb |