Sha256: 226e5d480dbdf8bacc4016dd93e80d3e64df98a5655a4b901e3efdf8785044a3

Contents?: true

Size: 735 Bytes

Versions: 4

Compression:

Stored size: 735 Bytes

Contents

require 'io/console'

require_relative '../support/cursor'
require_relative '../support/esc'

module Vedeu
  module Terminal
    extend self
    # :nocov:
    def open(&block)
      console.cooked do
        output Esc.reset
        output Esc.clear
        output Cursor.hide

        yield
      end if block_given?
    ensure
      output Cursor.show
      output Esc.reset
      output Esc.clear_last_line
    end
    # :nocov:

    def input
      console.gets.chomp
    end

    def output(stream = '')
      console.print(stream)

      stream
    end

    def width
      size.last
    end

    def height
      size.first
    end

    def size
      console.winsize
    end

    def console
      IO.console
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.0.29 lib/vedeu/support/terminal.rb
vedeu-0.0.28 lib/vedeu/support/terminal.rb
vedeu-0.0.27 lib/vedeu/support/terminal.rb
vedeu-0.0.26 lib/vedeu/support/terminal.rb