9 has log_file_name => (is => 'ro');
15 has $_ => (is => 'ro') for qw(dsn username password);
19 my %args; @args{qw(dsn username password)} = @_;
27 has $_ => (is => 'ro') for qw(logger db);
34 importing => { 'Moo' => [] },
35 subs => [ qw(has before after around) ];
40 : do { my $v = $_[0]; sub { $v } }
44 has $_[0] => (is => 'lazy');
45 install "_build_$_[0]" => _subify($_[1]);
49 install $_[0] => _subify($_[1]);
54 static log_file_name => 'logfile.log';
56 static logger => sub {
57 My::Logger->new(log_file_name => $_[0]->log_file_name);
60 static database => sub {
63 static dsn => "dbi:SQLite:dbname=my-app.db";
65 static username => 'user234';
67 static password => '****';
71 My::DB->connect($self->dsn, $self->username, $self->password);
76 dynamic application => sub {
78 My::App->new(logger => $self->logger, db => $self->database->db);
83 my $app = $c->application;
85 ok($app->logger->isa('My::Logger'), 'Logger object exists');
87 is($app->logger->log_file_name, 'logfile.log', 'log file name');
89 ok($app->db->isa('My::DB'), 'DB object exists');
91 is($app->db->dsn, "dbi:SQLite:dbname=my-app.db", 'DB object populated');