A class can be passwed to script
Cinxgler Mariaca Minda [Mon, 10 Oct 2011 13:26:25 +0000 (14:26 +0100)]
lib/CatalystX/HelpText/Finder/TemplateToolkit.pm [new file with mode: 0644]
lib/CatalystX/HelpText/Finder/TemplateToolkit/Regexp.pm [new file with mode: 0644]
lib/CatalystX/HelpText/Script/SearchUndocumentedHelpText.pm

diff --git a/lib/CatalystX/HelpText/Finder/TemplateToolkit.pm b/lib/CatalystX/HelpText/Finder/TemplateToolkit.pm
new file mode 100644 (file)
index 0000000..e76f2ae
--- /dev/null
@@ -0,0 +1,19 @@
+package CatalystX::HelpText::Finder::TemplateToolkit;
+use Moose;
+use Moose::Autobox;
+use List::MoreUtils qw/ uniq /;
+use Template;
+
+sub find_helptext_keys_in_fn {
+    my ($self, $fn, $script) = @_;
+    my @keys = ();
+    my $t = Template->new({
+        INCLUDE_PATH => [ $script->template_search_dir ],
+        ABSOLUTE => 1,
+    });
+    my $out;
+    $t->process($fn, { help_text => sub { push @keys, shift } }, \$out);
+    return [ uniq @keys ];
+}
+
+1;
\ No newline at end of file
diff --git a/lib/CatalystX/HelpText/Finder/TemplateToolkit/Regexp.pm b/lib/CatalystX/HelpText/Finder/TemplateToolkit/Regexp.pm
new file mode 100644 (file)
index 0000000..1949d83
--- /dev/null
@@ -0,0 +1,19 @@
+package CatalystX::HelpText::Finder::TemplateToolkit::Regexp;
+use Moose;
+use Moose::Autobox;
+use List::MoreUtils qw/ uniq /;
+
+sub find_helptext_keys_in_fn {
+    my ($self, $fn, $script) = @_;
+    open(FILE, $fn) or warn "Can't open $fn\n" && return;
+    my @keys = ();
+    while (<FILE>) {
+        if (my ($key) = m/help_text\(\s*['"](.*)['"]\s*\)/o) {
+            push @keys, $key;
+        }
+    }
+    close(FILE);
+    return [ uniq @keys ];
+}
+
+1;
\ No newline at end of file
index 0d16276..2eb149c 100644 (file)
@@ -11,6 +11,15 @@ use Template;
 use List::MoreUtils qw/ uniq /;
 use namespace::autoclean;
 
+has finder_class => (
+    isa => LoadableClass,
+    coerce => 1,
+    default => 'CatalystX::HelpText::Finder::TemplateToolkit',
+    handles => {
+        find_helptext_keys_in_fn => 'find_helptext_keys_in_fn',
+    }
+);
+
 has help_files_path => (
     is => 'ro',
     isa => Dir,
@@ -129,15 +138,7 @@ sub _build_all_files {
 
 sub _find_helptext_keys_in_fn {
     my ($self, $fn) = @_;
-    my $dir = $self->template_search_dir;
-    my @keys = ();
-    my $t = Template->new({
-        INCLUDE_PATH => [ $self->template_search_dir ],
-        ABSOLUTE => 1,
-    });
-    my $out;
-    $t->process($fn, { help_text => sub { push @keys, shift } }, \$out);
-    return [ uniq @keys ];
+    return $self->find_helptext_keys_in_fn($fn, $self);
 }
 
 sub _helptext_file_for_key_exists {