Class: TaskJuggler::MessageHandlerInstance

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/taskjuggler/MessageHandler.rb

Overview

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.

Constant Summary collapse

LogLevels =
{ :none => 0, :fatal => 1, :error => 2, :critical => 2,
:warning => 3, :info => 4, :debug => 5 }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMessageHandlerInstance

Initialize the MessageHandler.



125
126
127
# File 'lib/taskjuggler/MessageHandler.rb', line 125

def initialize
  reset
end

Instance Attribute Details

#abortOnWarningObject

Returns the value of attribute abortOnWarning.



119
120
121
# File 'lib/taskjuggler/MessageHandler.rb', line 119

def abortOnWarning
  @abortOnWarning
end

#appNameObject

Returns the value of attribute appName.



119
120
121
# File 'lib/taskjuggler/MessageHandler.rb', line 119

def appName
  @appName
end

#errorsObject (readonly)

Returns the value of attribute errors.



118
119
120
# File 'lib/taskjuggler/MessageHandler.rb', line 118

def errors
  @errors
end

#logFileObject

Returns the value of attribute logFile.



119
120
121
# File 'lib/taskjuggler/MessageHandler.rb', line 119

def logFile
  @logFile
end

#messagesObject (readonly)

Returns the value of attribute messages.



118
119
120
# File 'lib/taskjuggler/MessageHandler.rb', line 118

def messages
  @messages
end

Instance Method Details

#baselineSFI=(line) ⇒ Object



158
159
160
# File 'lib/taskjuggler/MessageHandler.rb', line 158

def baselineSFI=(line)
  @baselineSFI[Thread.current.object_id] = line
end

#clearObject

Clear the error log.



167
168
169
170
171
172
# File 'lib/taskjuggler/MessageHandler.rb', line 167

def clear
  # A counter for messages of type error.
  @errors = 0
  # A list of all generated messages.
  @messages = []
end

#critical(id, message, sourceFileInfo = nil, line = nil, data = nil, scenario = nil) ⇒ Object

Generate an critical message.



201
202
203
204
# File 'lib/taskjuggler/MessageHandler.rb', line 201

def critical(id, message, sourceFileInfo = nil, line = nil, data = nil,
             scenario = nil)
  addMessage(:critical, id, message, sourceFileInfo, line, data, scenario)
end

#debug(id, message, sourceFileInfo = nil, line = nil, data = nil, scenario = nil) ⇒ Object

Generate a debug message.



219
220
221
222
# File 'lib/taskjuggler/MessageHandler.rb', line 219

def debug(id, message, sourceFileInfo = nil, line = nil, data = nil,
          scenario = nil)
  addMessage(:debug, id, message, sourceFileInfo, line, data, scenario)
end

#error(id, message, sourceFileInfo = nil, line = nil, data = nil, scenario = nil) ⇒ Object

Generate an error message.



195
196
197
198
# File 'lib/taskjuggler/MessageHandler.rb', line 195

def error(id, message, sourceFileInfo = nil, line = nil, data = nil,
          scenario = nil)
  addMessage(:error, id, message, sourceFileInfo, line, data, scenario)
end

#fatal(id, message, sourceFileInfo = nil, line = nil, data = nil, scenario = nil) ⇒ Object

Generate a fatal message that will abort the application.



189
190
191
192
# File 'lib/taskjuggler/MessageHandler.rb', line 189

def fatal(id, message, sourceFileInfo = nil, line = nil, data = nil,
          scenario = nil)
  addMessage(:fatal, id, message, sourceFileInfo, line, data, scenario)
end

#hideScenario=(yesNo) ⇒ Object



184
185
186
# File 'lib/taskjuggler/MessageHandler.rb', line 184

def hideScenario=(yesNo)
  @hideScenario = yesNo
end

#info(id, message, sourceFileInfo = nil, line = nil, data = nil, scenario = nil) ⇒ Object

Generate an info message.



213
214
215
216
# File 'lib/taskjuggler/MessageHandler.rb', line 213

def info(id, message, sourceFileInfo = nil, line = nil, data = nil,
         scenario = nil)
  addMessage(:info, id, message, sourceFileInfo, line, data, scenario)
end

#logLevel=(level) ⇒ Object

Set the log output level.



180
181
182
# File 'lib/taskjuggler/MessageHandler.rb', line 180

def logLevel=(level)
  @logLevel = checkLevel(level)
end

#outputLevel=(level) ⇒ Object

Set the console output level.



175
176
177
# File 'lib/taskjuggler/MessageHandler.rb', line 175

def outputLevel=(level)
  @outputLevel = checkLevel(level)
end

#resetObject

Reset the MessageHandler to the initial state. All messages will be purged and the error counter set to 0.



131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# File 'lib/taskjuggler/MessageHandler.rb', line 131

def reset
  # This setting controls what type of messages will be written to the
  # console.
  @outputLevel = 4
  # This setting controls what type of messages will be written to the log
  # file.
  @logLevel = 3
  # The full file name of the log file.
  @logFile = nil
  # Toggle if scenario ids are included in the messages or not.
  @hideScenario = true
  # The name of the current application
  @appName = 'unknown'
  # Set to true if program should be exited on warnings.
  @abortOnWarning = false
  # A SourceFileInfo object that will be used to baseline the provided
  # source file infos of the messages. We use a Hash to keep per Thread
  # values.
  @baselineSFI = {}
  # Each tread can request to only throw a TjRuntimeError instead of
  # using exit(). This hash keeps a flag for each thread using the
  # object_id of the Thread object as key.
  @trapSetup = {}

  clear
end

#to_sObject

Convert all messages into a single String.



225
226
227
228
229
# File 'lib/taskjuggler/MessageHandler.rb', line 225

def to_s
  text = +''
  @messages.each { |msg| text += msg.to_s }
  text
end

#trapSetup=(enable) ⇒ Object



162
163
164
# File 'lib/taskjuggler/MessageHandler.rb', line 162

def trapSetup=(enable)
  @trapSetup[Thread.current.object_id] = enable
end

#warning(id, message, sourceFileInfo = nil, line = nil, data = nil, scenario = nil) ⇒ Object

Generate a warning.



207
208
209
210
# File 'lib/taskjuggler/MessageHandler.rb', line 207

def warning(id, message, sourceFileInfo = nil, line = nil, data = nil,
            scenario = nil)
  addMessage(:warning, id, message, sourceFileInfo, line, data, scenario)
end