Sha256: 5aca6b67dfa91b2a8c54de2478d3e5b408afe2f5b7d348fac285a5ef383448e0

Contents?: true

Size: 867 Bytes

Versions: 5

Compression:

Stored size: 867 Bytes

Contents

require 'colorize'

module ProjectReleaser
  module Logger
    class ColoredConsole
      COLORS = {
        :light_blue => "'",
        :green => '`',
        :yellow => '"'
      }

      def info(msg)
        puts colorize(msg)
      end

      def error(msg)
        info "\"Error\": #{msg}"
      end

      private

      def colorize(msg)
        msg = color_all_words(msg, :light_white)
        COLORS.each do |color, char|
          msg = color_char(msg, char, color)
        end
        msg
      end

      def color_all_words(msg, color)
        msg.split.map { |w| w.colorize(color) }.join(' ')  
      end

      def color_char(msg, char, color)
        color_regexp = Regexp.new "#{char}.*?#{char}"
        cleanup_regexp = Regexp.new "#{char}"
        msg.gsub(color_regexp) {|m| m.gsub(cleanup_regexp, '').colorize color}
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
project_releaser-0.0.6 lib/project_releaser/logger/colored_console.rb
project_releaser-0.0.5 lib/project_releaser/logger/colored_console.rb
project_releaser-0.0.4 lib/project_releaser/logger/colored_console.rb
project_releaser-0.0.3 lib/project_releaser/logger/colored_console.rb
project_releaser-0.0.1 lib/project_releaser/logger/colored_console.rb