From b65eada2daff5a651fab58be3513b12377629d38 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Tue, 13 May 2014 13:22:20 -0400 Subject: [PATCH] Now using \makespec instead of \maketitle for rater spec build --- raterspec.cls | 53 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/raterspec.cls b/raterspec.cls index 7a6c9fa..4edbf27 100644 --- a/raterspec.cls +++ b/raterspec.cls @@ -69,19 +69,28 @@ % The host environment is the same for all new systems % -\def\@raterspec@input@types{ - \PackageWarning{raterspec}{Missing program-specific input parameter types! - \MessageBreak Define using \protect\inputtypes} - \todo{No input parameter types have been defined.} +\let\@@madespec0 + +\def\@raterspec@mkhook#1#2#3#4{ + \expandafter\gdef\csname @raterspec@#1\endcsname{ + \PackageWarning{raterspec}{Missing #2! + \MessageBreak Define using \expandafter\protect\csname#1\endcsname}% + \todo{No #2 have been defined.}% + }% + \expandafter\gdef\csname#1\endcsname##1{% + \expandafter\gdef\csname @raterspec@#1\endcsname{% + #3\input{##1}#4% + }% + }% } -\def\@raterspec@input@params{ - \PackageWarning{raterspec}{Missing input parameters! - \MessageBreak Define using \protect\inputparams} - \todo{No input parameters have been defined.} -} +\def\makespec{ + \ifx\@@madespec1% + \PackageError{raterspec}{Duplicate call to \protect\makespec} + \fi + + \global\let\@@madespec1 -\def\@lvspec@posttitle{ \pnumoff\part{General System}\pnumon \chapter{Host Environment} @@ -95,36 +104,38 @@ \section{Program-Specific Parameter Types} \sectiondept{it/uw} - \@raterspec@input@types + \@raterspec@inputtypes \index{input data|)} \chapter{Input Parameters} \index{input data!parameters|(} \index{parameter|(} \input{raterspec/sec/params} - \@raterspec@input@params + \@raterspec@inputparams \index{input data!parameters|)} \index{parameter|)} } -\def\inputtypes#1{ - \gdef\@raterspec@input@types{ +\@raterspec@mkhook{inputtypes}{input types} + {% % can't really include a sigline here because approvial would be global \pnumoff Parameter types in this section are common to the \@title@short\ program. \pnumon \index{parameter type|(} - \input{#1} - \index{parameter type|)} } -} + {\index{parameter type|)}} -\def\inputparams#1{ - \gdef\@raterspec@input@params{ - \input{#1} - } +\@raterspec@mkhook{inputparams}{input parameters} + {} + {} + +\AtEndDocument{ + \ifx\@@madespec0 + \PackageError{raterspec}{\protect\makespec\space was not called} + \fi }