[libweasel-perl] 07/24: * Fix FindExpanders after testing

Robert James Clay jame at rocasa.us
Tue Aug 15 19:16:07 UTC 2017


This is an automated email from the git hooks/post-receive script.

jame-guest pushed a commit to tag v0.02
in repository libweasel-perl.

commit dd947b23d00ca20195f155c26eb43c7b4e4239a0
Author: Erik Huelsmann <ehuels at gmail.com>
Date:   Thu Jun 16 10:21:24 2016 +0200

    * Fix FindExpanders after testing
---
 lib/Weasel/FindExpanders.pm      | 19 +++++++++++++------
 lib/Weasel/FindExpanders/HTML.pm |  2 +-
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/lib/Weasel/FindExpanders.pm b/lib/Weasel/FindExpanders.pm
index 815e550..e231bff 100644
--- a/lib/Weasel/FindExpanders.pm
+++ b/lib/Weasel/FindExpanders.pm
@@ -30,6 +30,7 @@ use strict;
 use warnings;
 
 use base 'Exporter';
+use Carp;
 
 our @EXPORT_OK = qw| register_find_expander expand_finder_pattern |;
 
@@ -57,7 +58,7 @@ sub register_find_expander {
     push @{$find_expanders{$group}{$pattern_name}}, $expander_function;
 }
 
-=item expand_finder_pattern($pattern, $groups)
+=item expand_finder_pattern($pattern, $args, $groups)
 
 Returns a string of concatenated (using xpath '|' operator) expansions.
 
@@ -69,14 +70,17 @@ is returned as the only list/arrayref element.
 =cut
 
 sub expand_finder_pattern {
-    my ($pattern, $groups) = @_;
+    my ($pattern, $args, $groups) = @_;
 
-    $groups //= keys %find_expanders;   # undef --> unrestricted
-    return (wantarray ? ($pattern) : [ $pattern ])
-        if ! ($pattern =~ m/\*([^\|]+)\|({.*})/);
+    return $pattern
+        if ! ($pattern =~ m/\*([^\|]+)/);
     my $name = $1;
+
+    croak "No expansions registered (while expanding '$pattern')"
+        if scalar(keys %find_expanders) == 0;
+
+    $groups //= [ keys %find_expanders ];   # undef --> unrestricted
     # Using eval below to transform a hash-in-string to a hash efficiently
-    my $args = eval "$2"; ## no critic (ProhibitStringyEval)
 
     my @matches;
 
@@ -87,6 +91,9 @@ sub expand_finder_pattern {
           reverse map { $_->(%$args) } @{$find_expanders{$group}{$name}};
     }
 
+    croak "No expansions matching '$pattern'"
+        if ! @matches;
+
     return join "\n|", @matches;
 }
 
diff --git a/lib/Weasel/FindExpanders/HTML.pm b/lib/Weasel/FindExpanders/HTML.pm
index 6f7f04e..4b1f161 100644
--- a/lib/Weasel/FindExpanders/HTML.pm
+++ b/lib/Weasel/FindExpanders/HTML.pm
@@ -103,7 +103,7 @@ sub labelled_expander {
 
     my $tag = $args{tag_name} // '*';
     my $text = $args{text};
-    return ".//${tag}[id=//label[text()='$text']/\@for]";
+    return ".//${tag}[\@id=//label[text()='$text']/\@for]";
 }
 
 =item link_expander

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libweasel-perl.git



More information about the Pkg-perl-cvs-commits mailing list