Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / PPI / Token / QuoteLike / Words.pm
diff --git a/local-lib5/lib/perl5/PPI/Token/QuoteLike/Words.pm b/local-lib5/lib/perl5/PPI/Token/QuoteLike/Words.pm
new file mode 100644 (file)
index 0000000..fea61d2
--- /dev/null
@@ -0,0 +1,126 @@
+package PPI::Token::QuoteLike::Words;
+
+=pod
+
+=head1 NAME
+
+PPI::Token::QuoteLike::Words - Word list constructor quote-like operator
+
+=head1 INHERITANCE
+
+  PPI::Token::QuoteLike::Words
+  isa PPI::Token::QuoteLike
+      isa PPI::Token
+          isa PPI::Element
+
+=head1 DESCRIPTION
+
+A C<PPI::Token::QuoteLike::Words> object represents a quote-like operator
+that acts as a constructor for a list of words.
+
+  # Create a list for a significant chunk of the alphabet
+  my @list = qw{a b c d e f g h i j k l};
+
+=head1 METHODS
+
+=cut
+
+use strict;
+use PPI::Token::QuoteLike          ();
+use PPI::Token::_QuoteEngine::Full ();
+
+use vars qw{$VERSION @ISA};
+BEGIN {
+       $VERSION = '1.206';
+       @ISA     = qw{
+               PPI::Token::_QuoteEngine::Full
+               PPI::Token::QuoteLike
+       };
+}
+
+=pod
+
+=head2 literal
+
+Returns the words contained.  Note that this method does not check the
+context that the token is in; it always returns the list and not merely
+the last element if the token is in scalar context.
+
+=begin testing literal 16
+
+my $empty_list_document = PPI::Document->new(\<<'END_PERL');
+qw//
+qw/    /
+END_PERL
+
+isa_ok( $empty_list_document, 'PPI::Document' );
+my $empty_list_tokens =
+       $empty_list_document->find('PPI::Token::QuoteLike::Words');
+is( scalar @{$empty_list_tokens}, 2, 'Found expected empty word lists.' );
+foreach my $token ( @{$empty_list_tokens} ) {
+       my @literal = $token->literal;
+       is( scalar @literal, 0, qq<No elements for "$token"> );
+}
+
+my $non_empty_list_document = PPI::Document->new(\<<'END_PERL');
+qw/foo bar baz/
+qw/  foo bar baz  /
+END_PERL
+my @expected = qw/ foo bar baz /;
+
+isa_ok( $non_empty_list_document, 'PPI::Document' );
+my $non_empty_list_tokens =
+       $non_empty_list_document->find('PPI::Token::QuoteLike::Words');
+is(
+       scalar @{$non_empty_list_tokens},
+       2,
+       'Found expected non-empty word lists.',
+);
+foreach my $token ( @{$non_empty_list_tokens} ) {
+       my $literal = $token->literal;
+       is(
+               $literal,
+               scalar @expected,
+               qq<Scalar context literal() returns the list for "$token">,
+       );
+       my @literal = $token->literal;
+       is( scalar @literal, scalar @expected, qq<Element count for "$token"> );
+       for (my $x = 0; $x < @expected; $x++) {
+               is( $literal[$x], $expected[$x], qq<Element $x of "$token"> );
+       }
+}
+
+=end testing
+
+=cut
+
+sub literal {
+       my $self    = shift;
+       my $content = $self->content;
+       $content    = substr( $self->content, 3, length($content) - 4 );
+       return split ' ', $content;
+}
+
+1;
+
+=pod
+
+=head1 SUPPORT
+
+See the L<support section|PPI/SUPPORT> in the main module.
+
+=head1 AUTHOR
+
+Adam Kennedy E<lt>adamk@cpan.orgE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2001 - 2009 Adam Kennedy.
+
+This program is free software; you can redistribute
+it and/or modify it under the same terms as Perl itself.
+
+The full text of the license can be found in the
+LICENSE file included with this module.
+
+=cut