# Copyright (C) 2010 Red Hat, Inc. All rights reserved. # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions # of the GNU General Public License v.2. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # Data about the various reports we support require 'log' require 'pathname' module Reports Report = Struct.new(:short_desc, :desc, :path, :template) class ReportRegister attr_reader :reports private def add_report(sym, *args) @reports[sym] = Report.new(*args) end public def initialize() @reports = Hash.new add_report(:unit_test, "Unit Tests", "unit tests", Pathname.new("reports/unit.html"), Pathname.new("unit_test.rhtml")) add_report(:memcheck, "Memory Tests", "unit tests with valgrind memory checking", Pathname.new("reports/memcheck.html"), Pathname.new("memcheck.rhtml")) add_report(:unit_detail, "Unit Test Detail", "unit test detail", Pathname.new("reports/unit_detail.html"), # FIXME replace this with a lambda Pathname.new("unit_detail.rhtml")) end def get_report(sym) raise RuntimeError, "unknown report '#{sym}'" unless @reports.member?(sym) @reports[sym] end def each(&block) @reports.each(&block) end end end