Sha256: 3c5819a522b0ee6ab7a449ad301636d21d8bb1fc3da9451c8886a3cd54d5b83a
Contents?: true
Size: 1.34 KB
Versions: 3
Compression:
Stored size: 1.34 KB
Contents
module Vedeu # Validates that the provided coordinates are within the terminal and # interface's geometry (with or without a border). 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 [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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.4.32 | lib/vedeu/geometry/position_validator.rb |
vedeu-0.4.31 | lib/vedeu/geometry/position_validator.rb |
vedeu-0.4.30 | lib/vedeu/geometry/position_validator.rb |