App-Kit
view release on metacpan or search on metacpan
lib/App/Kit.pm view on Meta::CPAN
Has all the methods any L<Locale::Maketext::Utils> based object would have.
Localize your code now without needing an entire subsystem in place just yet!
=head3 $app->detect
Lazy façade to a context detection object via L<App::Kit::Role::Detect>.
=head3 $app->ctype
Lazy façade to a ctype utility object via L<App::Kit::Role::CType>.
=head3 $app->str
Lazy façade to a string utility object via L<App::Kit::Role::Str>.
=head3 $app->ns
Lazy façade to a name space utility object via L<App::Kit::Role::NS>.
=head3 $app->http
Lazy façade to an HTTP client object via L<App::Kit::Role::HTTP>.
=head3 $app->fs
Lazy façade to a file system utility object via L<App::Kit::Role::FS>.
=head3 $app->db
Lazy façade to a database utility object via L<App::Kit::Role::DB>.
=head3 $app->ex
Lazy façade to a system execution utility object via L<App::Kit::Role::Ex>.
=head1 DIAGNOSTICS
Throws no warnings or errors of its own.
All errors or warnings would come from perl, L<Moo>, or the façade object in question.
=head1 CONFIGURATION AND ENVIRONMENT
App::Kit requires no configuration files or environment variables.
If, however, the façade object in question does it will be documented specifically under it.
=head1 DEPENDENCIES
L<Moo> et al.
If you don't pass in -no-try: L<Try::Tiny> and L<Import::Into>
Other modules would be documented above under each façade object that brings them in.
=head1 INCOMPATIBILITIES
None reported.
=head1 BUGS AND LIMITATIONS
No bugs have been reported.
Please report any bugs or feature requests to
C<bug-app-kit@rt.cpan.org>, or through the web interface at
L<http://rt.cpan.org>.
=head1 TODO
=over 4
=item 1. More Lazy façade methods
=over 4
=item * App::Kit::Role::Crypt
# $app->crypt->encrypt($str, $cipher) $app->xcrypt->decrypt($str, $cipher) ->rand_data
=item * App::Kit::Role::Cache
# e.g Chi if it drops a few pounds by eating less Moose
=item * App::Kit::Role::In
# i.e. HTTP or ARGV == $app->in->param('name')
=item * App::Kit::Role::Out
# e.g.TT/classes/ANSI
=item * return obj/exception
=back
=item 2. Encapsulate tests that commonly do:
Class::Unload->unload('â¦');
ok(!exists $INC{'â¦.pm'}, 'Sanity: ⦠not loaded before');
is $app->?->â¦, 'â¦', '?() â¦'
ok(exists $INC{'â¦.pm'}, '⦠lazy loaded on initial ?()');
=item 3. easy to implement modes
for example:
=over 4
=item * root_safe: make certain methods die if called by root under some circumstance
(e.g. root calling file system utilities on paths owned by a user, forces them to drop privileges)
=item * owner_mode: process is running as owner of script
=item * chdir_safe: make chdir fatal
=back
=item 4. local()-type stash to get/set/has/del arbitrary data/objects to share w/ the rest of the consumers
( run in 2.789 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )