Sha256: cf801bb0fe6de6d6d099a51355808d35e1020d3ea04d204dd8bed4c1bc776058

Contents?: true

Size: 755 Bytes

Versions: 8

Compression:

Stored size: 755 Bytes

Contents

# frozen_string_literal: true

module Tracer
  module Color
    CLEAR = 0
    BOLD = 1
    UNDERLINE = 4
    REVERSE = 7
    RED = 31
    GREEN = 32
    YELLOW = 33
    BLUE = 34
    MAGENTA = 35
    CYAN = 36

    class << self
      def colorize(text, seq)
        seq = seq.map { |s| "\e[#{const_get(s)}m" }.join("")
        "#{seq}#{text}#{clear}"
      end

      def clear
        "\e[#{CLEAR}m"
      end
    end

    def colorize(str, seq, colorize: @colorize)
      !colorize ? str : Color.colorize(str, seq)
    end

    def colorize_cyan(str)
      colorize(str, %i[CYAN BOLD])
    end

    def colorize_blue(str)
      colorize(str, %i[BLUE BOLD])
    end

    def colorize_magenta(str)
      colorize(str, %i[MAGENTA BOLD])
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
tracer-0.2.3 lib/tracer/color.rb
tracer-0.2.2 lib/tracer/color.rb
tracer-0.2.1 lib/tracer/color.rb
tracer-0.2.0 lib/tracer/color.rb
ruby_tracer-0.3.1 lib/ruby_tracer/color.rb
ruby_tracer-0.3.0 lib/ruby_tracer/color.rb
ruby_tracer-0.2.0 lib/ruby_tracer/color.rb
ruby_tracer-0.1.0 lib/ruby_tracer/color.rb