module Guard class Jasmine # The Guard::Jasmine formatter collects console and # system notification methods and enhances them with # some color information. # module Formatter class << self # Print an info message to the console. # # @param [String] message the message to print # @param [Hash] options the output options # @option options [Boolean] :reset reset the UI # def info(message, options = {}) ::Guard::UI.info(message, options) end # Print a debug message to the console. # # @param [String] message the message to print # @param [Hash] options the output options # @option options [Boolean] :reset reset the UI # def debug(message, options = {}) ::Guard::UI.debug(message, options) end # Print a red error message to the console. # # @param [String] message the message to print # @param [Hash] options the output options # @option options [Boolean] :reset reset the UI # def error(message, options = {}) ::Guard::UI.error(color(message, ';31'), options) end # Print a green success message to the console. # # @param [String] message the message to print # @param [Hash] options the output options # @option options [Boolean] :reset reset the UI # def success(message, options = {}) ::Guard::UI.info(color(message, ';32'), options) end # Print a yellow pending message to the console. # # @param [String] message the message to print # @param [Hash] options the output options # @option options [Boolean] :reset reset the UI # def spec_pending(message, options = {}) ::Guard::UI.info(color(message, ';33'), options) end # Print a red spec failed message to the console. # # @param [String] message the message to print # @param [Hash] options the output options # def spec_failed(message, options = {}) ::Guard::UI.info(color(message, ';31'), options) end # Print a red spec failed message to the console. # # @param [String] message the message to print # @param [Hash] options the output options # def suite_name(message, options = {}) ::Guard::UI.info(color(message, ';33'), options) end # Outputs a system notification. # # @param [String] message the message to print # @param [Hash] options the output options # @option options [Symbol, String] :image the image to use, either :failed, :pending or :success, or an image path # @option options [String] :title the title of the system notification # def notify(message, options = {}) ::Guard::Notifier.notify(message, options) end private # Print a info message to the console. # # @param [String] text the text to colorize # @param [String] color_code the color code # def color(text, color_code) ::Guard::UI.send(:color_enabled?) ? "\e[0#{ color_code }m#{ text }\e[0m" : text end end end end end