| Catalyst-Model-Adaptor documentation | Contained in the Catalyst-Model-Adaptor distribution. |
Catalyst::Model::Adaptor::Base - internal base class for Catalyst::Model::Adaptor and friends.
# There are no user-serviceable parts in here.
Load the adapted class
Instantiate the adapted class
Prepare the arguements
Make the arguements amenable to the adapted class
| Catalyst-Model-Adaptor documentation | Contained in the Catalyst-Model-Adaptor distribution. |
package Catalyst::Model::Adaptor::Base; use strict; use warnings; use Carp; use MRO::Compat; use base 'Catalyst::Model'; sub _load_adapted_class { my ($self) = @_; croak 'need class' unless $self->{class}; my $adapted_class = $self->{class}; Catalyst::Utils::ensure_class_loaded($adapted_class); return $adapted_class; } sub _create_instance { my ($self, $app, $rest) = @_; my $constructor = $self->{constructor} || 'new'; my $arg = $self->prepare_arguments($app, $rest); my $adapted_class = $self->{class}; return $adapted_class->$constructor($self->mangle_arguments($arg)); } sub prepare_arguments { my ($self, $app, $arg) = @_; return exists $self->{args} ? { %{$self->{args}}, %$arg, } : $arg; } sub mangle_arguments { my ($self, $args) = @_; return $args; } 1; __END__