Class TaskJuggler::MessageHandler
In: lib/taskjuggler/MessageHandler.rb
Parent: Object

The MessageHandler can display and store application messages. Depending on the type of the message, a TjExeption can be raised (:error), or the program can be immedidately aborted (:fatal). Other types will just continue the program flow.

Methods

addMessage   critical   debug   error   fatal   info   new   to_s   warning  

Attributes

abortOnWarning  [RW] 
errors  [R] 
messages  [R] 
scenario  [RW] 

Public Class methods

Initialize the MessageHandler. console specifies if the messages should be printed to $stderr.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 103
    def initialize(console = false)
      @messages = []
      @console = console
      # We count the errors.
      @errors = 0
      # Set to true if program should be exited on warnings.
      @abortOnWarning = false
    end

Public Instance methods

Generate a message by specifying the type.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 149
    def addMessage(type, id, message, sourceFileInfo = nil, line = nil,
                   data = nil, scenario = nil)
      # Treat criticals like errors but without generating another
      # exception.
      msg = Message.new(type == :critical ? :error : type, id, message,
                        sourceFileInfo, line, data, scenario)
      @messages << msg
      # Print the message to $stderr if requested by the user.
      $stderr.puts msg.to_s if @console

      case type
      when :warning
        raise TjException.new, '' if @abortOnWarning
      when :critical
        # Increase the error counter.
        @errors += 1
      when :error
        # Increase the error counter.
        @errors += 1
        raise TjException.new, ''
      when :fatal
        raise RuntimeError
      end
    end

Generate an critical message.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 125
    def critical(id, message, sourceFileInfo = nil, line = nil, data = nil,
                 scenario = nil)
      addMessage(:critical, id, message, sourceFileInfo, line, data, scenario)
    end

Generate a debug message.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 143
    def debug(id, message, sourceFileInfo = nil, line = nil, data = nil,
              scenario = nil)
      addMessage(:info, id, message, sourceFileInfo, line, data, scenario)
    end

Generate an error message.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 119
    def error(id, message, sourceFileInfo = nil, line = nil, data = nil,
              scenario = nil)
      addMessage(:error, id, message, sourceFileInfo, line, data, scenario)
    end

Generate a fatal message that will abort the application.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 113
    def fatal(id, message, sourceFileInfo = nil, line = nil, data = nil,
              scenario = nil)
      addMessage(:fatal, id, message, sourceFileInfo, line, data, scenario)
    end

Generate an info message.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 137
    def info(id, message, sourceFileInfo = nil, line = nil, data = nil,
             scenario = nil)
      addMessage(:info, id, message, sourceFileInfo, line, data, scenario)
    end

Convert all messages into a single String.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 175
    def to_s
      text = ''
      @messages.each { |msg| text += msg.to_s }
      text
    end

Generate a warning.

[Source]

# File lib/taskjuggler/MessageHandler.rb, line 131
    def warning(id, message, sourceFileInfo = nil, line = nil, data = nil,
                scenario = nil)
      addMessage(:warning, id, message, sourceFileInfo, line, data, scenario)
    end

[Validate]