Move sort hooks to the IkiWiki::SortSpec namespace
authorSimon McVittie <smcv@debian.org>
Sat, 3 Apr 2010 12:57:38 +0000 (13:57 +0100)
committerSimon McVittie <smcv@debian.org>
Sat, 3 Apr 2010 13:28:21 +0000 (14:28 +0100)
Also rename cmpspec_translate (internal function) to sortspec_translate
for consistency.

IkiWiki.pm
IkiWiki/Plugin/meta.pm
IkiWiki/Plugin/sortnaturally.pm
doc/plugins/write.mdwn
t/pagespec_match_list.t

index 7547f175115753abfede918cdaf10c166a9c7c82..d716e8b394b9c88b61470d91d7a20ea612bbe3e3 100644 (file)
@@ -37,7 +37,7 @@ our $DEPEND_LINKS=4;
 # Optimisation.
 use Memoize;
 memoize("abs2rel");
-memoize("cmpspec_translate");
+memoize("sortspec_translate");
 memoize("pagespec_translate");
 memoize("template_file");
 
@@ -1935,7 +1935,7 @@ sub add_link ($$) {
                unless grep { $_ eq $link } @{$links{$page}};
 }
 
-sub cmpspec_translate ($) {
+sub sortspec_translate ($) {
        my $spec = shift;
 
        my $code = "";
@@ -1972,13 +1972,13 @@ sub cmpspec_translate ($) {
                        $code .= "-";
                }
 
-               if (exists $IkiWiki::PageSpec::{"cmp_$word"}) {
+               if (exists $IkiWiki::SortSpec::{"cmp_$word"}) {
                        if (defined $params) {
                                push @data, $params;
-                               $code .= "IkiWiki::PageSpec::cmp_$word(\@_, \$data[$#data])";
+                               $code .= "IkiWiki::SortSpec::cmp_$word(\@_, \$data[$#data])";
                        }
                        else {
-                               $code .= "IkiWiki::PageSpec::cmp_$word(\@_, undef)";
+                               $code .= "IkiWiki::SortSpec::cmp_$word(\@_, undef)";
                        }
                }
                else {
@@ -2095,7 +2095,7 @@ sub pagespec_match_list ($$;@) {
        }
 
        if (defined $params{sort}) {
-               my $f = cmpspec_translate($params{sort});
+               my $f = sortspec_translate($params{sort});
 
                @candidates = sort { $f->($a, $b) } @candidates;
        }
@@ -2410,6 +2410,8 @@ sub match_ip ($$;@) {
        }
 }
 
+package IkiWiki::SortSpec;
+
 sub cmp_title {
        IkiWiki::pagetitle(IkiWiki::basename($_[0]))
        cmp
index e8cc1e3927a13c3f89f87fe27800a26355ddd006..cd7d0d1277a47d4fcdd889961e81204d2a470010 100644 (file)
@@ -348,6 +348,8 @@ sub match_copyright ($$;@) {
        IkiWiki::Plugin::meta::match("copyright", @_);
 }
 
+package IkiWiki::SortSpec;
+
 sub cmp_meta_title {
        IkiWiki::Plugin::meta::titlesort($_[0])
        cmp
index 0023f31f942b124cd3fc251fbbf55c7e34761f4f..f498820a5bc7fa6107d4f182ef498641776262d7 100644 (file)
@@ -22,7 +22,7 @@ sub checkconfig () {
        error $@ if $@;
 }
 
-package IkiWiki::PageSpec;
+package IkiWiki::SortSpec;
 
 sub cmp_title_natural {
        Sort::Naturally::ncmp(IkiWiki::pagetitle(IkiWiki::basename($_[0])),
index 06c8f8e44af6842d00b301de4c805d9c68fee47d..b671422306b16915300f5afeb19e0778593407a5 100644 (file)
@@ -1114,7 +1114,7 @@ while "glob(*)" is not influenced by the contents of any page.
 
 Similarly, it's possible to write plugins that add new functions as
 [[ikiwiki/pagespec/sorting]] methods. To achieve this, add a function to
-the IkiWiki::PageSpec package named `cmp_foo`, which will be used when sorting
+the IkiWiki::SortSpec package named `cmp_foo`, which will be used when sorting
 by `foo` or `foo(...)` is requested.
 
 The function will be passed three or more parameters. The first two are
index 743ae4637062d57b326e0d75e6486e2388549d9f..68112f5c0f77245a771fd7e73cda3d7586b5ae86 100755 (executable)
@@ -10,7 +10,7 @@ $config{srcdir}=$config{destdir}="/dev/null";
 IkiWiki::checkconfig();
 
 {
-       package IkiWiki::PageSpec;
+       package IkiWiki::SortSpec;
 
        sub cmp_path { $_[0] cmp $_[1] }
 }