Sha256: 7a2926869c77808596f2ea548a95d3d94d5341fc444a6d27fd574ee6d1796029

Contents?: true

Size: 1005 Bytes

Versions: 4

Compression:

Stored size: 1005 Bytes

Contents

module Vedeu

  # Store and retrieve virtual terminals.
  #
  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

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.4.5 lib/vedeu/output/virtual_buffer.rb
vedeu-0.4.4 lib/vedeu/output/virtual_buffer.rb
vedeu-0.4.3 lib/vedeu/output/virtual_buffer.rb
vedeu-0.4.2 lib/vedeu/output/virtual_buffer.rb