lib/guard/ui.rb in guard-0.8.0 vs lib/guard/ui.rb in guard-0.8.1
- old
+ new
@@ -1,188 +1,188 @@
-module Guard
-
- # The UI class helps to format messages for the user.
- #
- module UI
- class << self
-
- color_enabled = nil
-
- # Show an info message.
- #
- # @param [String] message the message to show
- # @option options [Boolean] reset whether to clean the output before
- #
- def info(message, options = { })
- unless ENV['GUARD_ENV'] == 'test'
- reset_line if options[:reset]
- puts color(message) if message != ''
- end
- end
-
- # Show a red error message that is prefixed with ERROR.
- #
- # @param [String] message the message to show
- # @option options [Boolean] reset whether to clean the output before
- #
- def error(message, options = { })
- unless ENV['GUARD_ENV'] == 'test'
- reset_line if options[:reset]
- puts color('ERROR: ', :red) + message
- end
- end
-
- # Show a red deprecation message that is prefixed with DEPRECATION.
- #
- # @param [String] message the message to show
- # @option options [Boolean] reset whether to clean the output before
- #
- def deprecation(message, options = { })
- unless ENV['GUARD_ENV'] == 'test'
- reset_line if options[:reset]
- puts color('DEPRECATION: ', :red) + message
- end
- end
-
- # Show a debug message that is prefixed with DEBUG and a timestamp.
- #
- # @param [String] message the message to show
- # @option options [Boolean] reset whether to clean the output before
- #
- def debug(message, options = { })
- unless ENV['GUARD_ENV'] == 'test'
- reset_line if options[:reset]
- puts color("DEBUG (#{Time.now.strftime('%T')}): ", :yellow) + message if ::Guard.options && ::Guard.options[:debug]
- end
- end
-
- # Reset a line.
- #
- def reset_line
- print(color_enabled? ? "\r\e[0m" : "\r\n")
- end
-
- # Clear the output.
- #
- def clear
- system('clear;')
- end
-
- private
-
- # Reset a color sequence.
- #
- # @deprecated
- # @param [String] text the text
- #
- def reset_color(text)
- deprecation('UI.reset_color(text) is deprecated, please use color(text, ' ') instead.')
- color(text, '')
- end
-
- # Checks if color output can be enabled.
- #
- # @return [Boolean] whether color is enabled or not
- #
- def color_enabled?
- if @color_enabled.nil?
- if RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i
- if ENV['ANSICON']
- @color_enabled = true
- else
- begin
- require 'rubygems' unless ENV['NO_RUBYGEMS']
- require 'Win32/Console/ANSI'
- @color_enabled = true
- rescue LoadError
- @color_enabled = false
- info "You must 'gem install win32console' to use color on Windows"
- end
- end
- else
- @color_enabled = true
- end
- end
-
- @color_enabled
- end
-
- # Colorizes a text message. See the constant in the UI class for possible
- # color_options parameters. You can pass optionally :bright, a foreground
- # color and a background color.
- #
- # @example
- #
- # color('Hello World', :red, :bright)
- #
- # @param [String] the text to colorize
- # @param [Array] color_options the color options
- #
- def color(text, *color_options)
- color_code = ''
- color_options.each do |color_option|
- color_option = color_option.to_s
- if color_option != ''
- if !(color_option =~ /\d+/)
- color_option = const_get("ANSI_ESCAPE_#{ color_option.upcase }")
- end
- color_code += ';' + color_option
- end
- end
- color_enabled? ? "\e[0#{ color_code }m#{ text }\e[0m" : text
- end
-
- end
-
- # Brighten the color
- ANSI_ESCAPE_BRIGHT = '1'
-
- # Black foreground color
- ANSI_ESCAPE_BLACK = '30'
-
- # Red foreground color
- ANSI_ESCAPE_RED = '31'
-
- # Green foreground color
- ANSI_ESCAPE_GREEN = '32'
-
- # Yellow foreground color
- ANSI_ESCAPE_YELLOW = '33'
-
- # Blue foreground color
- ANSI_ESCAPE_BLUE = '34'
-
- # Magenta foreground color
- ANSI_ESCAPE_MAGENTA = '35'
-
- # Cyan foreground color
- ANSI_ESCAPE_CYAN = '36'
-
- # White foreground color
- ANSI_ESCAPE_WHITE = '37'
-
- # Black background color
- ANSI_ESCAPE_BGBLACK = '40'
-
- # Red background color
- ANSI_ESCAPE_BGRED = '41'
-
- # Green background color
- ANSI_ESCAPE_BGGREEN = '42'
-
- # Yellow background color
- ANSI_ESCAPE_BGYELLOW = '43'
-
- # Blue background color
- ANSI_ESCAPE_BGBLUE = '44'
-
- # Magenta background color
- ANSI_ESCAPE_BGMAGENTA = '45'
-
- # Cyan background color
- ANSI_ESCAPE_BGCYAN = '46'
-
- # White background color
- ANSI_ESCAPE_BGWHITE = '47'
-
- end
-end
+module Guard
+
+ # The UI class helps to format messages for the user.
+ #
+ module UI
+ class << self
+
+ color_enabled = nil
+
+ # Show an info message.
+ #
+ # @param [String] message the message to show
+ # @option options [Boolean] reset whether to clean the output before
+ #
+ def info(message, options = { })
+ unless ENV['GUARD_ENV'] == 'test'
+ reset_line if options[:reset]
+ puts color(message) if message != ''
+ end
+ end
+
+ # Show a red error message that is prefixed with ERROR.
+ #
+ # @param [String] message the message to show
+ # @option options [Boolean] reset whether to clean the output before
+ #
+ def error(message, options = { })
+ unless ENV['GUARD_ENV'] == 'test'
+ reset_line if options[:reset]
+ puts color('ERROR: ', :red) + message
+ end
+ end
+
+ # Show a red deprecation message that is prefixed with DEPRECATION.
+ #
+ # @param [String] message the message to show
+ # @option options [Boolean] reset whether to clean the output before
+ #
+ def deprecation(message, options = { })
+ unless ENV['GUARD_ENV'] == 'test'
+ reset_line if options[:reset]
+ puts color('DEPRECATION: ', :red) + message
+ end
+ end
+
+ # Show a debug message that is prefixed with DEBUG and a timestamp.
+ #
+ # @param [String] message the message to show
+ # @option options [Boolean] reset whether to clean the output before
+ #
+ def debug(message, options = { })
+ unless ENV['GUARD_ENV'] == 'test'
+ reset_line if options[:reset]
+ puts color("DEBUG (#{Time.now.strftime('%T')}): ", :yellow) + message if ::Guard.options && ::Guard.options[:debug]
+ end
+ end
+
+ # Reset a line.
+ #
+ def reset_line
+ print(color_enabled? ? "\r\e[0m" : "\r\n")
+ end
+
+ # Clear the output.
+ #
+ def clear
+ system('clear;')
+ end
+
+ private
+
+ # Reset a color sequence.
+ #
+ # @deprecated
+ # @param [String] text the text
+ #
+ def reset_color(text)
+ deprecation('UI.reset_color(text) is deprecated, please use color(text, ' ') instead.')
+ color(text, '')
+ end
+
+ # Checks if color output can be enabled.
+ #
+ # @return [Boolean] whether color is enabled or not
+ #
+ def color_enabled?
+ if @color_enabled.nil?
+ if RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i
+ if ENV['ANSICON']
+ @color_enabled = true
+ else
+ begin
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
+ require 'Win32/Console/ANSI'
+ @color_enabled = true
+ rescue LoadError
+ @color_enabled = false
+ info "You must 'gem install win32console' to use color on Windows"
+ end
+ end
+ else
+ @color_enabled = true
+ end
+ end
+
+ @color_enabled
+ end
+
+ # Colorizes a text message. See the constant in the UI class for possible
+ # color_options parameters. You can pass optionally :bright, a foreground
+ # color and a background color.
+ #
+ # @example
+ #
+ # color('Hello World', :red, :bright)
+ #
+ # @param [String] the text to colorize
+ # @param [Array] color_options the color options
+ #
+ def color(text, *color_options)
+ color_code = ''
+ color_options.each do |color_option|
+ color_option = color_option.to_s
+ if color_option != ''
+ if !(color_option =~ /\d+/)
+ color_option = const_get("ANSI_ESCAPE_#{ color_option.upcase }")
+ end
+ color_code += ';' + color_option
+ end
+ end
+ color_enabled? ? "\e[0#{ color_code }m#{ text }\e[0m" : text
+ end
+
+ end
+
+ # Brighten the color
+ ANSI_ESCAPE_BRIGHT = '1'
+
+ # Black foreground color
+ ANSI_ESCAPE_BLACK = '30'
+
+ # Red foreground color
+ ANSI_ESCAPE_RED = '31'
+
+ # Green foreground color
+ ANSI_ESCAPE_GREEN = '32'
+
+ # Yellow foreground color
+ ANSI_ESCAPE_YELLOW = '33'
+
+ # Blue foreground color
+ ANSI_ESCAPE_BLUE = '34'
+
+ # Magenta foreground color
+ ANSI_ESCAPE_MAGENTA = '35'
+
+ # Cyan foreground color
+ ANSI_ESCAPE_CYAN = '36'
+
+ # White foreground color
+ ANSI_ESCAPE_WHITE = '37'
+
+ # Black background color
+ ANSI_ESCAPE_BGBLACK = '40'
+
+ # Red background color
+ ANSI_ESCAPE_BGRED = '41'
+
+ # Green background color
+ ANSI_ESCAPE_BGGREEN = '42'
+
+ # Yellow background color
+ ANSI_ESCAPE_BGYELLOW = '43'
+
+ # Blue background color
+ ANSI_ESCAPE_BGBLUE = '44'
+
+ # Magenta background color
+ ANSI_ESCAPE_BGMAGENTA = '45'
+
+ # Cyan background color
+ ANSI_ESCAPE_BGCYAN = '46'
+
+ # White background color
+ ANSI_ESCAPE_BGWHITE = '47'
+
+ end
+end