class AdLint::MessageCatalog

DESCRIPTION

Message catalog.

Public Class Methods

new(traits) click to toggle source
# File lib/adlint/message.rb, line 448
def initialize(traits)
  @traits = traits
  @hash = Hash.new
  message_definition_files.each { |def_file| def_file.read_into(self) }
end

Public Instance Methods

lookup(msg_id) click to toggle source
# File lib/adlint/message.rb, line 454
def lookup(msg_id)
  @hash[msg_id] or raise InvalidMessageIdError.new(msg_id)
end
merge!(pkg_name, msg_def) click to toggle source
# File lib/adlint/message.rb, line 458
def merge!(pkg_name, msg_def)
  msg_def.each do |msg_name_str, cont|
    msg_id = MessageId.new(pkg_name, msg_name_str.to_sym)
    if changed = @traits.of_message.change_list[msg_id]
      cont = changed
    end
    @hash[msg_id] =
      MessageTemplate.new(msg_id, cont["classes"], cont["format"])
  end
end

Private Instance Methods

message_definition_files() click to toggle source
# File lib/adlint/message.rb, line 470
def message_definition_files
  lang_name = @traits.of_message.language
  [CoreMessageDefinitionFile.new(lang_name)] +
    @traits.exam_packages.map { |pkg|
      ExamMessageDefinitionFile.new(pkg, lang_name)
    }
end