Sha256: 05f241a9426644a1f68d9bd6b73dba512fedb99b041edbba161ee1bd81056485
Contents?: true
Size: 1.9 KB
Versions: 2
Compression:
Stored size: 1.9 KB
Contents
module Vedeu module Clear # Clear the named interface. # # @api private class NamedInterface class << self # @return [void] # @see #initialize def render(name) new(name).render end alias_method :clear_by_name, :render alias_method :by_name, :render end # Eigenclass # Return a new instance of Vedeu::Clear::NamedInterface. # # @param name [String] The name of the interface to clear. # @return [Vedeu::Clear::NamedInterface] def initialize(name) @name = name end # @return [void] def render return [] unless interface.visible? output end protected # @!attribute [r] name # @return [String] attr_reader :name private # @see Vedeu::Geometries#by_name def geometry @geometry ||= Vedeu.geometries.by_name(name) end # @see Vedeu::Interfaces#by_name def interface @interface ||= Vedeu.interfaces.by_name(name) end # For each visible line of the interface, set the foreground and # background colours to those specified when the interface was defined, # then starting write space characters over the area which the interface # occupies. # # @return [Array<Array<Vedeu::Char>>] def output Vedeu.timer("Clearing: '#{name}'") do @y = geometry.y @x = geometry.x @width = geometry.width @height = geometry.height @colour = interface.colour @clear ||= Array.new(@height) do |iy| Array.new(@width) do |ix| Vedeu::Char.new(value: ' ', colour: @colour, position: [@y + iy, @x + ix]) end end end end end # NamedInterface end # Clear end # Vedeu
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.4.53 | lib/vedeu/output/clear/named_interface.rb |
vedeu-0.4.52 | lib/vedeu/output/clear/named_interface.rb |