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.



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

def initialize
  reset
end

Instance Attribute Details

#abortOnWarningObject

Returns the value of attribute abortOnWarning.



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

def abortOnWarning
  @abortOnWarning
end

#appNameObject

Returns the value of attribute appName.



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

def appName
  @appName
end

#errorsObject (readonly)

Returns the value of attribute errors.



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

def errors
  @errors
end

#logFileObject

Returns the value of attribute logFile.



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

def logFile
  @logFile
end

#messagesObject (readonly)

Returns the value of attribute messages.



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

def messages
  @messages
end

Instance Method Details

#baselineSFI=(line) ⇒ Object



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

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

#clearObject

Clear the error log.



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

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.



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

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.



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

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.



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

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.



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

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

#hideScenario=(yesNo) ⇒ Object



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

def hideScenario=(yesNo)
  @hideScenario = yesNo
end

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

Generate an info message.



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

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.



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

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

#outputLevel=(level) ⇒ Object

Set the console output level.



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

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.



130
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
# File 'lib/taskjuggler/MessageHandler.rb', line 130

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.



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

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

#trapSetup=(enable) ⇒ Object



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

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.



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

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