package IkiWiki::FailReason;
use overload (
- '""' => sub { return ${$_[0]} },
- '0+' => sub { return 0 },
+ '""' => sub { ${$_[0]} },
+ '0+' => sub { 0 },
'!' => sub { bless $_[0], 'IkiWiki::SuccessReason'},
fallback => 1,
);
package IkiWiki::SuccessReason;
use overload (
- '""' => sub { return ${$_[0]} },
- '0+' => sub { return 1 },
+ '""' => sub { ${$_[0]} },
+ '0+' => sub { 1 },
'!' => sub { bless $_[0], 'IkiWiki::FailReason'},
fallback => 1,
);
\[[testpagespec pagespec="foopage or !bar*" match="barpage"]]
-This will print out something like "no match: bar* matches barpage", since the part
-of the [[PageSpec]] that fails is this negated match.
+This will print out something like "no match: bar* matches barpage", since
+the part of the [[PageSpec]] that fails is this negated match.
\[[testpagespec pagespec="foopage or barpage" match="barpage"]]
This will print out something like "match: barpage matches barpage",
-indicating the part of the [[PageSpec]] that did match.
+indicating the part of the [[PageSpec]] that caused it to match.
locked pages. Suddenly all the access controls live in one place.
Wonderbar!
+(Note that pagespec_match will now return an object that stringifies to a
+message indicating why the pagespec matched, or failed to match, so if a
+pagespec lock like the above prevents an edit or upload from happening,
+ikiwiki could display a reasonable message to the user, indicating what
+they've done wrong.)
+
[[tag soc]]