Sha256: 3d82399bb3c9b3ba9fedf2f6ba852b0d9efc76fea35ebbcd9962ed94d20bc06a

Contents?: true

Size: 1.62 KB

Versions: 11

Compression:

Stored size: 1.62 KB

Contents

module Vedeu

  module Terminal

    # Store the current mode of the terminal.
    #
    module Mode

      extend self

      # Returns a boolean indicating whether the terminal is currently in
      # `cooked` mode.
      #
      # @return [Boolean]
      def cooked_mode?
        mode == :cooked
      end

      # Sets the terminal in to `cooked` mode.
      #
      # @return [Symbol]
      def cooked_mode!
        @mode = :cooked
      end

      # Returns a boolean indicating whether the terminal is currently in `fake`
      # mode.
      #
      # @return [Boolean]
      def fake_mode?
        mode == :fake
      end

      # Sets the terminal in to `fake` mode.
      #
      # @return [Symbol]
      def fake_mode!
        @mode = :fake
      end

      # Returns a boolean indicating whether the terminal is currently in `raw`
      # mode.
      #
      # @return [Boolean]
      def raw_mode?
        mode == :raw
      end

      # Sets the terminal in to `raw` mode.
      #
      # @return [Symbol]
      def raw_mode!
        @mode = :raw
      end

      # Toggles the terminal's mode between `cooked`, `fake` and `raw`,
      # depending on its current mode.
      #
      # @return [Symbol]
      def switch_mode!
        return fake_mode!   if raw_mode?
        return cooked_mode! if fake_mode?

        raw_mode!
      end

      # Returns the mode of the terminal, either `:cooked`, `:fake` or `:raw`.
      # Can change throughout the lifespan of the client application.
      #
      # @return [Symbol]
      def mode
        @mode ||= Vedeu::Configuration.terminal_mode
      end

    end # Mode

  end # Terminal

end # Vedeu

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
vedeu-0.6.10 lib/vedeu/terminal/mode.rb
vedeu-0.6.9 lib/vedeu/terminal/mode.rb
vedeu-0.6.8 lib/vedeu/terminal/mode.rb
vedeu-0.6.7 lib/vedeu/terminal/mode.rb
vedeu-0.6.6 lib/vedeu/terminal/mode.rb
vedeu-0.6.5 lib/vedeu/terminal/mode.rb
vedeu-0.6.4 lib/vedeu/terminal/mode.rb
vedeu-0.6.3 lib/vedeu/terminal/mode.rb
vedeu-0.6.2 lib/vedeu/terminal/mode.rb
vedeu-0.6.1 lib/vedeu/terminal/mode.rb
vedeu-0.6.0 lib/vedeu/terminal/mode.rb