Sha256: ea7e7bdcefe0c110c875111b457e7bf17f90c4d6797edc34297f481770841718

Contents?: true

Size: 1.05 KB

Versions: 22

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Libuv
    class TTY < Handle
        include Stream


        def initialize(reactor, fileno, readable)
            @reactor = reactor

            tty_ptr = ::Libuv::Ext.allocate_handle_tty
            error = check_result(::Libuv::Ext.tty_init(reactor.handle, tty_ptr, fileno, readable ? 1 : 0))
            
            super(tty_ptr, error)
        end

        def enable_raw_mode
            return if @closed
            check_result ::Libuv::Ext.tty_set_mode(handle, 1)
            self
        end

        def disable_raw_mode
            return if @closed
            check_result ::Libuv::Ext.tty_set_mode(handle, 0)
            self
        end

        def reset_mode
            ::Libuv::Ext.tty_reset_mode
            self
        end

        def winsize
            return [] if @closed
            width = FFI::MemoryPointer.new(:int)
            height = FFI::MemoryPointer.new(:int)
            ::Libuv::Ext.tty_get_winsize(handle, width, height)
            [width.get_int(0), height.get_int(0)]
        end
    end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
libuv-4.0.9 lib/libuv/tty.rb
libuv-4.0.2 lib/libuv/tty.rb
libuv-4.0.1 lib/libuv/tty.rb
libuv-4.0.0 lib/libuv/tty.rb
libuv-3.3.0 lib/libuv/tty.rb
libuv-3.2.4 lib/libuv/tty.rb
libuv-3.2.3 lib/libuv/tty.rb
libuv-3.2.2 lib/libuv/tty.rb
libuv-3.2.1 lib/libuv/tty.rb
libuv-3.2.0 lib/libuv/tty.rb
libuv-3.1.9 lib/libuv/tty.rb
libuv-3.1.8 lib/libuv/tty.rb
libuv-3.1.7 lib/libuv/tty.rb
libuv-3.1.6 lib/libuv/tty.rb
libuv-3.1.5 lib/libuv/tty.rb
libuv-3.1.4 lib/libuv/tty.rb
libuv-3.1.3 lib/libuv/tty.rb
libuv-3.1.2 lib/libuv/tty.rb
libuv-3.1.1 lib/libuv/tty.rb
libuv-3.1.0 lib/libuv/tty.rb