From 0d2b29fd9d932f909f46209d17963752379ea545 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 26 Jan 2011 14:56:23 -0600 Subject: initial sketch --- lib/Narwhal.pm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'lib/Narwhal.pm') diff --git a/lib/Narwhal.pm b/lib/Narwhal.pm index e69de29..240b504 100644 --- a/lib/Narwhal.pm +++ b/lib/Narwhal.pm @@ -0,0 +1,43 @@ +package Narwhal; +use OX; + +config kioku_dsn => 'dbi:SQLite:narwhal.db'; +config kioku_extra_args => sub { { create => 1 } }; +config template_root => sub { + shift->param('app_root')->subdir('root', 'templates') +}, (app_root => depends_on('/app_root')); + +component Redirect => 'Narwhal::Component::Redirect'; + +component Wiki => 'Narwhal::Component::Wiki', ( + kioku => depends_on('/Component/Kioku'), + tt => depends_on('/Component/TT'), +); + +# turn these two into specialized classes later +component TT => 'Template', ( + INCLUDE_PATH => depends_on('/Config/template_root'), +); + +component Kioku => 'KiokuX::Model', ( + dsn => depends_on('/Config/kioku_dsn'), + extra_args => depends_on('/Config/kioku_extra_args'), +); + +router as { + route '/' => 'redirect.permanent', ( + to => '/page/main', + ); + route '/page/:page_name' => 'wiki.page', ( + page_name => { isa => 'Str' }, + ); + route '/edit/:page_name' => 'wiki.edit', ( + page_name => { isa => 'Str' }, + ); +}, ( + redirect => depends_on('/Component/Redirect'), + wiki => depends_on('/Component/Wiki'), +); + +no OX; +1; -- cgit v1.2.3-54-g00ecf