$allowance; } /** * One letter worse. * * @param string $grade Letter. * @return string */ public static function degrade( $grade ) { $index = array_search( $grade, self::LETTERS, true ); if ( false === $index ) { return $grade; } return self::LETTERS[ min( $index + 1, count( self::LETTERS ) - 1 ) ]; } /** * Visual tone for a grade (maps to zen-grade-- modifier classes). * * @param string $grade Letter or 'pending'. * @return string good|warn|bad|pending */ public static function tone( $grade ) { if ( 'A' === $grade || 'B' === $grade ) { return 'good'; } if ( 'C' === $grade ) { return 'warn'; } if ( 'pending' === $grade ) { return 'pending'; } return 'bad'; } }