App-Unicode-Block
view release on metacpan or search on metacpan
# Run.
sub run {
my $self = shift;
# Process arguments.
$self->{'_opts'} = {
'h' => 0,
'l' => 0,
};
if (! getopts('hl', $self->{'_opts'}) || $self->{'_opts'}->{'h'}) {
print STDERR "Usage: $0 [-h] [-l] [--version] [unicode_block]\n";
print STDERR "\t-h\t\tHelp.\n";
print STDERR "\t-l\t\tList of blocks.\n";
print STDERR "\t--version\tPrint version.\n";
print STDERR "\tunicode_block\tUnicode block name for print.\n";
return 1;
}
$self->{'_unicode_block'} = $ARGV[0];
# Get unicode block list.
$self->{'_list'} = Unicode::Block::List->new;
$self->{'_unicode_block_list'} = [$self->{'_list'}->list];
# Check unicode block.
if (defined $self->{'_unicode_block'}) {
if (none { $self->{'_unicode_block'} eq $_ }
@{$self->{'_unicode_block_list'}}) {
err "Unicode block '$self->{'_unicode_block'}' doesn't exist.";
}
}
# Print unicode blocks.
if ($self->{'_opts'}->{'l'}) {
print join "\n", @{$self->{'_unicode_block_list'}};
print "\n";
return 0;
}
# Print block.
if ($self->{'_unicode_block'}) {
$self->_print_block($self->{'_unicode_block'});
# GUI for selecting of block.
} else {
# Window.
my $cui = Curses::UI->new;
my $win = $cui->add('window_id', 'Window');
$win->set_binding(\&exit, "\cQ", "\cC");
# Popup menu.
my $popupbox = $win->add(
'mypopupbox', 'Popupmenu',
'-labels' => {
map { $_, $_ } @{$self->{'_unicode_block_list'}},
},
'-onchange' => sub {
my $cui_self = shift;
$cui->leave_curses;
$self->_print_block($cui_self->get);
exit 0;
},
'-values' => $self->{'_unicode_block_list'},
);
$popupbox->focus;
# Loop.
$cui->mainloop;
}
return 0;
}
__END__
=pod
=encoding utf8
=head1 NAME
App::Unicode::Block - Base class for unicode-block script.
=head1 SYNOPSIS
use App::Unicode::Block;
my $app = App::Unicode::Block->new;
$app->run;
=head1 METHODS
bin/unicode-block
Block.pm
Changes
examples/ex1.pl
inc/Module/Install.pm
inc/Module/Install/AuthorRequires.pm
inc/Module/Install/AuthorTests.pm
inc/Module/Install/Base.pm
inc/Module/Install/Can.pm
inc/Module/Install/Fetch.pm
inc/Module/Install/Makefile.pm
---
abstract: 'Distribution for unicode-block script.'
author:
- 'Michal Josef Spacek <skim@cpan.org>'
build_requires:
English: 0
Error::Pure::Utils: 0
ExtUtils::MakeMaker: 6.36
Test::More: 0
Test::NoWarnings: 0
Test::Output: 0
configure_requires:
Makefile.PL view on Meta::CPAN
use lib '.';
use strict;
use warnings;
use inc::Module::Install;
# Definition.
abstract 'Distribution for unicode-block script.';
author 'Michal Josef Spacek <skim@cpan.org>';
author_requires 'English' => 0;
author_requires 'File::Object' => 0.05;
author_requires 'Test::More' => 0;
author_requires 'Test::NoWarnings' => 0;
author_requires 'Test::Pod' => 0;
author_requires 'Test::Pod::Coverage' => 0;
install_script 'bin/unicode-block';
license 'bsd';
name 'App-Unicode-Block';
readme_from 'bin/unicode-block';
recursive_author_tests('xt');
requires 'Curses::UI' => 0;
requires 'Encode' => 0;
requires 'Error::Pure' => 0.15;
requires 'Getopt::Std' => 0;
requires 'List::MoreUtils' => 0;
requires 'Unicode::Block::Ascii' => 0;
requires 'Unicode::Block::List' => 0;
requires 'perl' => '5.6.0';
resources 'bugtracker' => 'https://rt.cpan.org/Public/Dist/Display.html'.
NAME
unicode-block - Script to print Unicode blocks.
SYNOPSIS
unicode-block [-h] [-l] [--version] [unicode_block]
ARGUMENTS
* "-h"
Print help.
* "-l"
Print list of Unicode blocks.
* "--version"
Print version of script.
* "unicode_block"
Name of Unicode block to print.
If this name present, only print block and exit.
EXAMPLE1
unicode-block -h
EXAMPLE2
unicode-block -l
EXAMPLE3
unicode-block Thai
REPOSITORY
<https://github.com/michal-josef-spacek/App-Unicode-Block>
AUTHOR
Michal Josef Å paÄek <mailto:skim@cpan.org>
<http://skim.cz>
LICENSE AND COPYRIGHT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
SHA256 5737276bc4d154a1a66cd44dc82e83031f76267b111003c228d80658e20f68e6 Block.pm
SHA256 ca838fb13563bfaaa9c166e23fcd8bf6e421c760f7fb2436a6f35d9be975b680 Changes
SHA256 cf17aabcd594f257dd9369e1420c29e1ca80b5ed93dd5e967204f40e9e56d18b LICENSE
SHA256 684c76993312edd2ed33bafa5ae65831e375c2767574b2309a65c94880d56893 MANIFEST
SHA256 80e00a6dd7beec6d53e93d71d73f02bcea1800e855b4f1632fe8b91187d570d8 META.yml
SHA256 9f2dd5ef330a0064271706343dca112a9d600212199d7b6829bb31fcdea240aa Makefile.PL
SHA256 99b7574efb10477d841fed0fff6d1cec071b50f8c6b33c410741433de59c6705 README
SHA256 2373faaef3b1c2ab9bf6c58a1201917e52859e30e0a10ea87b7fe60acf9a2ef1 bin/unicode-block
SHA256 4797bff4aebda9e0c8a8f08df3efcfe2ae562b2b69a96317768be6b26dbff716 examples/ex1.pl
SHA256 67d139199c03b8bf8447a5a62f0d0b6dc1bd5bf6dbe04de6d21998c577823ed6 inc/Module/Install.pm
SHA256 8bd506c33fb78f10f6451413e931ca23541fcc4eebe05fcb7c7c9577341223c4 inc/Module/Install/AuthorRequires.pm
SHA256 1b5430a46a35142ef8914d8c745196fca825defc9dfa7e389299bf294613825e inc/Module/Install/AuthorTests.pm
SHA256 6ebcc53a161dd5dc0aae69e4704575f2b00181901d768a82e26722a309cfdbe4 inc/Module/Install/Base.pm
SHA256 d3f8c839d03fd21c197d05362dbb277cd7cadb15da6390d124b61e851f15146e inc/Module/Install/Can.pm
SHA256 e9e72e18921c10c87bc4ea4c20af83e52015b9f5775d00ac64073042403717ca inc/Module/Install/Fetch.pm
SHA256 a7a681bf2c9eee58a372cb642ffe42b0301d1200432ba8de9f7791cd1ecc9827 inc/Module/Install/Makefile.pm
SHA256 aa887fa65a5eb6bbd1805706ce298b3f3cd55b353ecfd37aa7d35ae419331a49 inc/Module/Install/Metadata.pm
SHA256 53825bc78e4c910b888160bc148c8bc211be58e02b99c8edcbf4854f95faa049 inc/Module/Install/ReadmeFromPod.pm
bin/unicode-block view on Meta::CPAN
}
__END__
=pod
=encoding utf8
=head1 NAME
unicode-block - Script to print Unicode blocks.
=head1 SYNOPSIS
unicode-block [-h] [-l] [--version] [unicode_block]
=head1 ARGUMENTS
=over 8
=item * C<-h>
Print help.
=item * C<-l>
Print list of Unicode blocks.
=item * C<--version>
Print version of script.
=item * C<unicode_block>
Name of Unicode block to print.
If this name present, only print block and exit.
=back
=head1 EXAMPLE1
unicode-block -h
=head1 EXAMPLE2
unicode-block -l
=head1 EXAMPLE3
unicode-block Thai
=head1 REPOSITORY
L<https://github.com/michal-josef-spacek/App-Unicode-Block>
=head1 AUTHOR
Michal Josef Å paÄek L<mailto:skim@cpan.org>
L<http://skim.cz>
t/App-Unicode-Block/04-run.t view on Meta::CPAN
â U+007x âpâqârâsâtâuâvâwâxâyâzâ{â|â}â~â â
ââââââââââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ´ââ
END
my $foo = stdout_is(
sub {
App::Unicode::Block->new->run;
return;
},
$right_ret,
"Run with listing of 'Basic Latin' unicode block.",
);
# Test.
@ARGV = (
'Bad block'
);
eval {
App::Unicode::Block->new->run;
};
is($EVAL_ERROR, "Unicode block 'Bad block' doesn't exist.\n",
'Run with bad unicode block name.');
clean();
# Test.
@ARGV = (
'-h',
);
$right_ret = <<'END';
Usage: t/App-Unicode-Block/04-run.t [-h] [-l] [--version] [unicode_block]
-h Help.
-l List of blocks.
--version Print version.
unicode_block Unicode block name for print.
END
stderr_is(
sub {
App::Unicode::Block->new->run;
return;
},
$right_ret,
'Run help.',
);
( run in 0.755 second using v1.01-cache-2.11-cpan-88abd93f124 )