Skip to content

Commit

Permalink
📝 doc
Browse files Browse the repository at this point in the history
  • Loading branch information
moznion committed Feb 25, 2015
1 parent 941bc1d commit cb06a3b
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 37 deletions.
74 changes: 47 additions & 27 deletions README.md
Expand Up @@ -8,7 +8,7 @@ Perl::PrereqScanner::Lite - Lightweight Prereqs Scanner for Perl
use Perl::PrereqScanner::Lite;

my $scanner = Perl::PrereqScanner::Lite->new;
$scanner->add_extra_scanner('Moose');
$scanner->add_extra_scanner('Moose'); # add extra scanner for moose style
my $modules = $scanner->scan_file('path/to/file');

# DESCRIPTION
Expand All @@ -18,51 +18,71 @@ This scanner uses [Compiler::Lexer](https://metacpan.org/pod/Compiler::Lexer) as

# METHODS

- new($opt)
## new($opt)

Create scanner instance.
Create a scanner instance.

- scan\_file($file\_path)
`$opt` must be hash reference. It accepts following keys of hash:

Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by file path.
- extra\_scanners

- scan\_string($string)

Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by source code string written in perl.
It specifies extra scanners. This item must be array reference.

e.g.

open my $fh, '<', __FILE__;
my $string = do { local $/; <$fh> };
my $modules = $scanner->scan_string($string);
my $scanner = Perl::PrereqScanner::Lite->new(
extra_scanners => [qw/Moose Version/]
);

- scan\_module($module\_name)
See also ["add\_extra\_scanner($scanner\_name)"](#add_extra_scanner-scanner_name).

Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by module name.
- no\_prereq

e.g.
It specifies to use `## no prereq` or not. Please see also ["ADDITIONAL NOTATION"](#additional-notation).

my $modules = $scanner->scan_module('Perl::PrereqScanner::Lite');
## scan\_file($file\_path)

- scan\_tokens($tokens)
Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by file path.

Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by tokens of [Compiler::Lexer](https://metacpan.org/pod/Compiler::Lexer).
## scan\_string($string)

e.g.
Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by source code string written in perl.

e.g.

open my $fh, '<', __FILE__;
my $string = do { local $/; <$fh> };
my $modules = $scanner->scan_string($string);

## scan\_module($module\_name)

Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by module name.

e.g.

my $modules = $scanner->scan_module('Perl::PrereqScanner::Lite');

## scan\_tokens($tokens)

Scan and figure out prereqs which is instance of `CPAN::Meta::Requirements` by tokens of [Compiler::Lexer](https://metacpan.org/pod/Compiler::Lexer).

e.g.

open my $fh, '<', __FILE__;
my $string = do { local $/; <$fh> };
my $tokens = Compiler::Lexer->new->tokenize($string);
my $modules = $scanner->scan_tokens($tokens);

open my $fh, '<', __FILE__;
my $string = do { local $/; <$fh> };
my $tokens = Compiler::Lexer->new->tokenize($string);
my $modules = $scanner->scan_tokens($tokens);
## add\_extra\_scanner($scanner\_name)

- add\_extra\_scanner($scanner\_name)
Add extra scanner to scan and figure out prereqs. This module loads extra scanner such as `Perl::PrereqScanner::Lite::Scanner::$scanner_name` if specifying scanner name through this method.

Add extra scanner to scan and figure out prereqs. This module loads extra scanner such as `Perl::PrereqScanner::Lite::Scanner::$scanner_name` if specifying scanner name through this method.
If you want to specify an extra scanner from external package without `Perl::PrereqScanner::Lite::` prefix, you can prepend `+` to `$scanner_name`. Like so `+Your::Awesome::Scanner`.

Extra scanners that are default supported are followings;
Extra scanners that are default supported are followings;

- [Perl::PrereqScanner::Lite::Scanner::Moose](https://metacpan.org/pod/Perl::PrereqScanner::Lite::Scanner::Moose)
- [Perl::PrereqScanner::Lite::Scanner::Version](https://metacpan.org/pod/Perl::PrereqScanner::Lite::Scanner::Version)
- [Perl::PrereqScanner::Lite::Scanner::Moose](https://metacpan.org/pod/Perl::PrereqScanner::Lite::Scanner::Moose)
- [Perl::PrereqScanner::Lite::Scanner::Version](https://metacpan.org/pod/Perl::PrereqScanner::Lite::Scanner::Version)

# ADDITIONAL NOTATION

Expand Down
40 changes: 30 additions & 10 deletions lib/Perl/PrereqScanner/Lite.pm
Expand Up @@ -356,7 +356,7 @@ Perl::PrereqScanner::Lite - Lightweight Prereqs Scanner for Perl
use Perl::PrereqScanner::Lite;
my $scanner = Perl::PrereqScanner::Lite->new;
$scanner->add_extra_scanner('Moose');
$scanner->add_extra_scanner('Moose'); # add extra scanner for moose style
my $modules = $scanner->scan_file('path/to/file');
=head1 DESCRIPTION
Expand All @@ -366,17 +366,37 @@ This scanner uses L<Compiler::Lexer> as tokenizer, therefore processing speed is
=head1 METHODS
=head2 new($opt)
Create a scanner instance.
C<$opt> must be hash reference. It accepts following keys of hash:
=over 4
=item * new($opt)
=item * extra_scanners
It specifies extra scanners. This item must be array reference.
e.g.
my $scanner = Perl::PrereqScanner::Lite->new(
extra_scanners => [qw/Moose Version/]
);
Create scanner instance.
See also L</add_extra_scanner($scanner_name)>.
=item * scan_file($file_path)
=item * no_prereq
It specifies to use C<## no prereq> or not. Please see also L</ADDITIONAL NOTATION>.
=back
=head2 scan_file($file_path)
Scan and figure out prereqs which is instance of C<CPAN::Meta::Requirements> by file path.
=item * scan_string($string)
=head2 scan_string($string)
Scan and figure out prereqs which is instance of C<CPAN::Meta::Requirements> by source code string written in perl.
Expand All @@ -386,15 +406,15 @@ e.g.
my $string = do { local $/; <$fh> };
my $modules = $scanner->scan_string($string);
=item * scan_module($module_name)
=head2 scan_module($module_name)
Scan and figure out prereqs which is instance of C<CPAN::Meta::Requirements> by module name.
e.g.
my $modules = $scanner->scan_module('Perl::PrereqScanner::Lite');
=item * scan_tokens($tokens)
=head2 scan_tokens($tokens)
Scan and figure out prereqs which is instance of C<CPAN::Meta::Requirements> by tokens of L<Compiler::Lexer>.
Expand All @@ -405,10 +425,12 @@ e.g.
my $tokens = Compiler::Lexer->new->tokenize($string);
my $modules = $scanner->scan_tokens($tokens);
=item * add_extra_scanner($scanner_name)
=head2 add_extra_scanner($scanner_name)
Add extra scanner to scan and figure out prereqs. This module loads extra scanner such as C<Perl::PrereqScanner::Lite::Scanner::$scanner_name> if specifying scanner name through this method.
If you want to specify an extra scanner from external package without C<Perl::PrereqScanner::Lite::> prefix, you can prepend C<+> to C<$scanner_name>. Like so C<+Your::Awesome::Scanner>.
Extra scanners that are default supported are followings;
=over 8
Expand All @@ -419,8 +441,6 @@ Extra scanners that are default supported are followings;
=back
=back
=head1 ADDITIONAL NOTATION
If C<no_prereq> is enabled by C<new()> (like so: C<Perl::PrereqScanner::Lite-E<gt>new({no_prereq =E<gt> 1})>),
Expand Down

0 comments on commit cb06a3b

Please sign in to comment.