1 package CatalystX::HelpText::Script::SearchUndocumentedHelpText;
4 use MooseX::Types::Path::Class qw/ Dir /;
5 use MooseX::Types::Moose qw/Str Undef HashRef ArrayRef Bool/;
8 use Getopt::Long::Descriptive; # Force GLD as we override bits..
9 use MooseX::Types::LoadableClass qw/ LoadableClass /;
10 use Moose::Util::TypeConstraints qw/ duck_type /;
12 use List::MoreUtils qw/ uniq /;
13 use namespace::autoclean;
18 default => 'CatalystX::HelpText::Finder::TemplateToolkit',
24 sub _construct_finder {
26 return $self->new_finder(@_);
30 isa => duck_type([qw/ find_helptext_keys_in_fn /]),
33 $self->_construct_finder(
34 template_search_dir => $self->template_search_dir
39 _find_helptext_keys_in_fn => 'find_helptext_keys_in_fn',
43 has help_files_path => (
53 has template_search_dir => (
59 has filename_pattern => (
62 default => '\.(html|tt)$',
65 has help_files_ext => (
73 $self->print_result();
80 builder => '_build_all_keys',
85 [ uniq map { $self->_find_helptext_keys_in_fn($_)->flatten } $self->all_files->flatten ];
88 has keys_to_helptext_exist_map => (
91 builder => '_build_keys_to_helptext_exist_map',
94 does_helptext_exist_for_key => 'get',
98 sub _build_keys_to_helptext_exist_map {
101 map { $_ => $self->_helptext_file_for_key_exists($_) }
102 $self->all_keys->flatten
107 has documented_keys => (
108 isa => ArrayRef[Str],
113 [ grep { $self->does_helptext_exist_for_key($_) } $self->all_keys->flatten ];
117 has_documented_keys => 'count',
121 has undocumented_keys => (
122 isa => ArrayRef[Str],
127 [ grep { ! $self->does_helptext_exist_for_key($_) } $self->all_keys->flatten ];
131 has_undocumented_keys => 'count',
136 isa => ArrayRef[Str],
139 builder => '_build_all_files',
142 sub _build_all_files {
144 my $filename_pattern = $self->filename_pattern;
149 my $filename = $File::Find::name;
150 return unless -f $filename;
151 return unless $filename =~ /$filename_pattern/;
152 push @files, $filename;
155 }, $self->template_search_dir->flatten);
159 sub _helptext_file_for_key_exists {
160 my ($self, $key) = @_;
161 my $file = $self->_get_file($key);
162 $file .= "." . $self->help_files_ext if defined($self->help_files_ext);
168 if ($self->has_undocumented_keys) {
169 print "Undocumented help text keys: \n";
170 print " - $_\n" for ($self->undocumented_keys->flatten);
178 __PACKAGE__->meta->make_immutable;
179 __PACKAGE__->new_with_options->run unless caller;
185 CatalystX::HelpText::Script::SearchUndocumentedHelpText
189 search_undocumented_templates.pl
195 =item L<CatalystX::HelpText>
201 Toomas Doran, C<< t0m at state51.co.uk >>
203 Cinxgler Mariaca Minda, C<< cinxgler at ci-info.com >>
207 Copyright Oscar Music and Media 2011.
211 This sofware is free software, and is licensed under the same terms as perl itself.