Quiq::Assert - Zusicherungen
Quiq::Hash
use Quiq::Assert; my $a = Quiq::Assert->new; # Universeller Test (hier: Prüfe, ob Wert einen Punkt (.) enthält) $a->check('a.b',sub {index(shift,'.') >= 0}); # Prüfe, ob Wert in Aufzählung vorkommt $a->isEnumValue('Birne',['Apfel','Birne','Pflaume']); # Prüfe, ob Wert nicht leer ist $a->isNotNull('xyz'); # Prüfe, ob Wert eine Zahl ist $a->isNumber(3.14159);
Die Klasse stellt Methoden zur Verfügung, mit denen eine Eingenschaft eines Werts geprüft werden kann. Im Erfolgsfall kehrt die jeweilige Methode zurück, im Fehlerfall wirft sie eine Exception.
Test von der Kommandozeile aus:
$ perl -MQuiq::Assert -E 'Quiq::Assert->new->isNotNull("",-name=>"x")' Exception: ASSERT-00002: Value is null Name: x Stacktrace: Quiq::Assert::isNotNull() [+1 -e] Quiq::Object::throw() [+210 .../Quiq/Assert.pm] Quiq::Stacktrace::asString() [+425 .../Quiq/Object.pm]
$a = $class->new(@att);
Attribut/Wert-Paare.
Bezeichnung des Namensabschnitts.
Gib bei Exception einen Stacktrace aus.
Objekt
Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück. Da die Klasse ausschließlich Klassenmethoden enthält, hat das Objekt lediglich die Funktion, eine abkürzende Aufrufschreibweise zu ermöglichen.
Die folgenden Testmethoden können sowohl als Klassen- als auch als Objektmethoden gerufen werden. Im Void-Kontext gerufen, werfen sie eine Exception, wenn die Bedingung verletzt ist, andernfalls 0 oder 1.
$this->check($val,@opt,$sub); # Exception $bool = $this->check($val,@opt,$sub); # Rückgabewert
Wert, der geprüft wird.
Prüf-Subroutine. Ist die Bedingung erfüllt, liefert sie "wahr", andernfalls "falsch". Beispiel:
sub { my $val = shift; return $val =~ /\.export$/? 1: 0; }
Name, der bei Verletzung der Bedingung als Teil der Fehlermeldung ausgegeben wird. Dies kann der Name der geprüften Variable, des geprüften Parameters o.ä. sein.
Boolean
Prüfe den Wert $val daraufhin, ob er die Prüfung $sub besteht. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht, d.h. die Subroutine wird für einen leeren Wert nicht gerufen und muss diesen Fall daher nicht behandeln.
$this->pathExists($path); # Exception $bool = $this->pathExists($path); # Rückgabewert
fileExists()
dirExists()
Pfad
Prüfe, ob Pfad $path existiert. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht.
$this->isEnumValue($val,\@values,@opt); # Exception $bool = $this->isEnumValue($val,\@values,@opt); # Rückgabewert
Liste der Enum-Werte.
Prüfe den Wert $val daraufhin, dass er in Liste @values enthalten ist. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht.
$this->isNotNull($val,@opt); # Exception $bool = $this->isNotNull($val,@opt); # Rückgabewert
Prüfe den Wert $val daraufhin, dass er nichtleer, also weder undefiniert noch ein Leerstring ist. Ist er leer, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0.
$this->isNumber($val,@opt); # Exception $bool = $this->isNumber($val,@opt); # Rückgabewert
Prüfe den Wert $val daraufhin, dass er eine dezimale Zahl darstellt. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht.
1.215
Frank Seitz, http://fseitz.de/
Copyright (C) 2024 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.