App-AltSQL
view release on metacpan or search on metacpan
lib/App/AltSQL.pm view on Meta::CPAN
- Dump
view_plugins:
- Color
- UnicodeBox
App::AltSQL::View::Plugin::Color:
header_text:
default: red
cell_text:
is_null: blue
is_primary_key: bold
is_number: yellow
App::AltSQL::View::Plugin::UnicodeBox:
style: heavy_header
split_lines: 1
plain_ascii: 0
This is the default configuration, and currently encompasses all the configurable settings. This should be future safe; as you can see, plugins may use this file for their own variables as there are namespaced sections.
=over 4
=item B<prompt>
prompt: "%u@%h[%d]> "
# 'username@hostname[database]> '
prompt: "%c{red}%u%c{reset} %t{%F %T}> '
# 'username' (in red) ' YYYY-MM-DD HH:MM:SS> '
Provide a custom prompt. The following variables will be interpolated:
=over 4
=item B<%u>
The username used to connect to the model
=item B<%d>
The current database or '(none)'
=item B<%h>
The hostname the model is connected to
=item B<%%>
An escaped percent sign
=item B<%c{...}>
A L<Term::ANSIColor> color name. The value will be passed directly to the C<color> method.
=item B<%e{...}>
A block to be eval'ed. You may use $self to refer to the L<App::AltSQL::Term> object
=item B<%t{...}>
The argument to this option will be passed to L<DateTime> C<strftime> for the current time
=back
=item B<plugins>
An array of plugin names for the main namespace.
=item B<view_plugins>
An array of View plugin names to be applied to each View object created
=back
=head1 EXTENDING
As mentioned above, one key point of this project is to make it easy for people to extend. For this reason, I've built it on L<Moose> and offer a L<MooseX::Object::Pluggable> interface. If you extend C<App::AltSQL>, you may want to know about the f...
=cut
use Moose;
use Getopt::Long qw(GetOptionsFromArray);
use Params::Validate;
use Data::Dumper;
use Config::Any;
use Hash::Union qw(union);
our $VERSION = 0.05;
our $| = 1;
# Don't emit 'Wide character in output' warnings
binmode STDOUT, ':utf8';
with 'MooseX::Object::Pluggable';
my @_config_stems = ( '/etc/altsql', "$ENV{HOME}/.altsql" );
my %_default_classes = (
term => 'App::AltSQL::Term',
view => 'App::AltSQL::View',
model => 'App::AltSQL::Model::MySQL',
);
my %default_config = (
plugins => [ 'Tail', 'Dump' ],
view_plugins => [ 'Color', 'UnicodeBox' ],
term_plugins => [],
);
=head2 Accessors
=over 4
=item term - the singleton L<App::AltSQL::Term> (or subclass) instance
=item view - the class in which all table output will be accomplished (defaults to L<App::AltSQL::View>)
=item model - where the database calls happen (L<App::AltSQL::Model::MySQL>)
=cut
has ['term', 'view', 'model'] => (is => 'ro');
( run in 1.370 second using v1.01-cache-2.11-cpan-5735350b133 )