Sha256: b39dca8bc9284322b059a6e1f184b1ec9e68124c5a768872f0c0a97606f06174
Contents?: true
Size: 1.6 KB
Versions: 23
Compression:
Stored size: 1.6 KB
Contents
module Vedeu # Store and retrieve {Vedeu::VirtualTerminal} objects. # # Each {Vedeu::VirtualTerminal} object is a copy of the current terminal # including content but not as String objects but {Vedeu::Char} objects. Using # {Vedeu::Char} objects means that we can store the data used to make up the # displayed character, complete with its colour, position and style. # # Once a {Vedeu::Char} has been converted to a String, it is tricky to # separate the escape sequences and string data. By deferring this conversion # we can display the {Vedeu::Char} in multiple ways (e.g. HTML) or in multiple # formats (e.g. JSON), and render/use that in an appropriate way. # module VirtualBuffer extend self # Fetch the oldest stored virtual buffer first. # # @return [Array<Array<Vedeu::Char>>|NilClass] def retrieve storage.pop end # Store a new virtual buffer. # # @return [Array<Array<Vedeu::Char>>] def store(data) storage.unshift(data) end # Return the number of virtual buffers currently stored. # # @return [Fixnum] def size storage.size end # Destroy all virtual buffers currently stored. # # @return [Array] def clear @storage = in_memory end alias_method :reset, :clear private # Access to the storage for this repository. # # @return [Array] def storage @storage ||= in_memory end # Returns an empty collection ready for the storing of virtual buffers. # # @return [Array] def in_memory [] end end # VirtualBuffer end # Vedeu
Version data entries
23 entries across 23 versions & 1 rubygems