Sha256: b9ae40718163da0c7956facc5b682e374bb4d9bc6260a8f662ad1e8eceff683f

Contents?: true

Size: 835 Bytes

Versions: 9

Compression:

Stored size: 835 Bytes

Contents

module Vedeu

  module Input

    # Handle input when terminal is in :raw (character at a time)
    # mode.
    #
    # @api private
    #
    class Raw

      # @see Vedeu::Input::Raw#initialize
      def self.read
        new.read
      end

      # Returns a new instance of Vedeu::Input::Raw.
      #
      # @return [Vedeu::Input::Raw]
      def initialize; end

      # @return [String]
      def read
        keys = console.getch

        if keys.ord == Vedeu::ESCAPE_KEY_CODE
          keys << console.read_nonblock(4) rescue nil
          keys << console.read_nonblock(3) rescue nil
          keys << console.read_nonblock(2) rescue nil
        end

        keys
      end

      private

      # @return [IO]
      def console
        @console ||= Vedeu::Terminal.console
      end

    end # Raw

  end # Input

end # Vedeu

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
vedeu-0.8.0 lib/vedeu/input/raw.rb
vedeu-0.7.4 lib/vedeu/input/raw.rb
vedeu-0.7.3 lib/vedeu/input/raw.rb
vedeu-0.7.2 lib/vedeu/input/raw.rb
vedeu-0.7.1 lib/vedeu/input/raw.rb
vedeu-0.7.0 lib/vedeu/input/raw.rb
vedeu-0.6.71 lib/vedeu/input/raw.rb
vedeu-0.6.70 lib/vedeu/input/raw.rb
vedeu-0.6.69 lib/vedeu/input/raw.rb