blib/lib/Liveman/MinillaPod2Markdown.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
statement | 21 | 25 | 84.0 |
branch | 2 | 4 | 50.0 |
condition | 4 | 12 | 33.3 |
subroutine | 5 | 5 | 100.0 |
pod | 3 | 3 | 100.0 |
total | 35 | 49 | 71.4 |
line | stmt | bran | cond | sub | pod | time | code |
---|---|---|---|---|---|---|---|
1 | package Liveman::MinillaPod2Markdown; 2: # Обманка для Minilla, чтобы скопировать Module в README.md 3: 4: use parent qw/Pod::Markdown/; 5: 6: use File::Slurper qw/read_text write_text/; 7: 8: sub new { bless {}, __PACKAGE__ } 9: 10: sub parse_from_file { 11: my ($self, $path) = @_; 12: $self->{pm_path} = $path; 13: $self->{path} = $path =~ s!\.pm$!.md!r; 14: $self 15: } 16: 17: sub as_markdown { 18: my ($self) = @_; 19: 20: my $md = read_text $self->{path}; 21: my $pm = read_text $self->{pm_path}; 22: 23: my $v = uc "version"; 24: my ($md_version) = $md =~ /^#[ \t]+$v\s+([\w.-]{1,32})\s/m; 25: my ($pm_version) = $pm =~ /^our\s+\$$v\s*=\s*["']?([\w.-]{1,32})/m; 26: my ($hd_version) = $pm =~ /^=head1[ \t]+VERSION\s+([\w.-]{1,32})\s/m; 27: 28: if(defined $pm_version and defined $md_version and $pm_version ne $md_version) { 29: $md =~ s/(#[ \t]+$v\s+)[\w.-]{1,32}(\s)/$1$pm_version$2/; 30: write_text $self->{path}, $md; 31: } 32: 33: if(defined $pm_version and defined $hd_version and $pm_version ne $hd_version) { 34: $pm =~ s/^(=head1[ \t]+VERSION\s+)[\w.-]{1,32}(\s)/$1$pm_version$2/m; 35: write_text $self->{pm_path}, $pm; 36: } 37: 38: $md 39: } 40: 41: 1; 42: 43: __END__ 44: 45: =encoding utf-8 46: 47: =head1 NAME 48: 49: Liveman::MinillaPod2Markdown - bung for Minilla. It not make README.md 50: 51: =head1 SYNOPSIS 52: 53: use Liveman::MinillaPod2Markdown; 54: 55: my $mark = Liveman::MinillaPod2Markdown->new; 56: 57: $mark->isa("Pod::Markdown") # -> 1 58: 59: use File::Slurper qw/write_text/; 60: write_text "X.md", "hi!"; 61: write_text "X.pm", "our \$VERSION = 1.0;"; 62: 63: $mark->parse_from_file("X.pm"); 64: $mark->{path} # => X.md 65: 66: $mark->as_markdown # => hi! 67: 68: =head1 DESCRIPION 69: 70: Add C<markdown_maker = "Liveman::MinillaPod2Markdown"> to C<minil.toml>, and Minilla do'nt make README.md. 71: 72: =head1 SUBROUTINES 73: 74: =head2 as_markdown () 75: 76: The bung. 77: 78: =head2 new () 79: 80: The constructor. 81: 82: =head2 parse_from_file ($path) 83: 84: The bung. 85: 86: =head1 INSTALL 87: 88: For install this module in your system run next LL<https://metacpan.org/pod/App::cpm>: 89: 90: sudo cpm install -gvv Liveman::MinillaPod2Markdown 91: 92: =head1 AUTHOR 93: 94: Yaroslav O. Kosmina LL<mailto:dart@cpan.org> 95: 96: =head1 LICENSE 97: 98: ⚖ B<GPLv3> 99: 100: =head1 COPYRIGHT 101: 102: The Liveman::MinillaPod2Markdown module is copyright © 2023 Yaroslav O. Kosmina. Rusland. All rights reserved. 103: |