Sha256: 8da4e286c196325cdfa467ee6dc7bd56ccfcbb75318495d3d8151697ae682d06
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
module Vedeu class RefreshCursor # @param name [String] The name of the cursor. # @return [Array] def self.render(name) new(name).render end # @param name [String] The name of the cursor. # @return [Vedeu::RefreshCursor] def initialize(name) @name = name end # @return [Array] def render Vedeu::Refresh.by_name(name) if refresh_view? Vedeu::Terminal.output(new_cursor.to_s) end private # @!attribute [r] name # @return [String] attr_reader :name # @return [Boolean] def refresh_view? new_cursor.ox >= interface_width || new_cursor.oy >= interface_height end # @return [Vedeu::Cursor] def new_cursor @new_cursor ||= Vedeu::Cursor.new(cursor.attributes.merge(position)) end # @return [Hash] def position { x: validated_position.x, y: validated_position.y, } end # @return [Vedeu::PositionValidator] def validated_position @position ||= Vedeu::PositionValidator.validate(interface, cursor.x, cursor.y) end # @return [Vedeu::Cursor] def cursor @cursor ||= Vedeu.cursors.find(name) end # @return [Fixnum] def interface_height if interface.border? interface.border.height else interface.height end end # @return [Fixnum] def interface_width if interface.border? interface.border.width else interface.width end end # @return [Vedeu::Interface] def interface @interface ||= Vedeu.interfaces.find(name) end end # RefreshCursor end # Vedeu
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.4.7 | lib/vedeu/cursor/refresh_cursor.rb |