1 package CatalystX::ModelsFromConfig;
3 use Catalyst::Model::Adaptor ();
4 use namespace::autoclean;
12 # Note method reaming - allows user to modify my setup_dynamic_component without being
13 # forced to do it globally.
14 with 'CatalystX::DynamicComponent'
15 => { alias => { _setup_dynamic_component => '_setup_dynamic_model' } };
17 after 'setup_components' => sub { shift->_setup_dynamic_models(@_); };
19 sub _setup_dynamic_models {
22 my $app_name = blessed($app) || $app;
23 my $model_prefix = 'Model::';
25 my $config = $app->config || {};
27 foreach my $model_name ( grep { /^$model_prefix/ } keys %$config ) {
28 my $model_class_name = $app_name . '::' . $model_name;
30 $app->_setup_dynamic_model( $model_class_name, $config->{$model_name},
32 my ($component_class_name, $app, $args) = @_;
34 my $class = delete $args->{class};
35 Class::MOP::load_class($class);