File: platform.rb

package info (click to toggle)
ruby-cri 2.15.12-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 384 kB
  • sloc: ruby: 2,776; makefile: 11
file content (30 lines) | stat: -rw-r--r-- 808 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# frozen_string_literal: true

module Cri
  # Provides tools to detect platform and environment configuration (e.g. is
  # color support available?)
  #
  # @api private
  module Platform
    # @return [Boolean] true if the current platform is Windows, false
    # otherwise.
    def self.windows?
      RUBY_PLATFORM =~ /windows|bccwin|cygwin|djgpp|mingw|mswin|wince/i
    end

    # Checks whether colors can be enabled. For colors to be enabled, the given
    # IO should be a TTY, and, when on Windows, ::Win32::Console::ANSI needs to
    # be defined.
    #
    # @return [Boolean] True if colors should be enabled, false otherwise.
    def self.color?(io)
      if !io.tty?
        false
      elsif windows?
        defined?(::Win32::Console::ANSI)
      else
        true
      end
    end
  end
end