Greatly simplified internals by simply setting actions in the controller's config.
Dave Rolsky [Wed, 26 Jan 2011 20:44:35 +0000 (14:44 -0600)]
No need for metaclass junk.

lib/CatalystX/Routes/Role/Class.pm [deleted file]
lib/CatalystX/Routes/Role/Controller.pm [deleted file]

diff --git a/lib/CatalystX/Routes/Role/Class.pm b/lib/CatalystX/Routes/Role/Class.pm
deleted file mode 100644 (file)
index edf4529..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-package CatalystX::Routes::Role::Class;
-
-use Moose::Role;
-use namespace::autoclean;
-
-has _routes => (
-    traits  => ['Hash'],
-    isa     => 'HashRef[ArrayRef]',
-    handles => {
-        add_route   => 'set',
-        get_route   => 'get',
-        route_names => 'keys',
-    },
-);
-
-has _chain_points => (
-    traits  => ['Hash'],
-    isa     => 'HashRef[ArrayRef]',
-    handles => {
-        add_chain_point   => 'set',
-        get_chain_point   => 'get',
-        chain_point_names => 'keys',
-    },
-);
-
-1;
diff --git a/lib/CatalystX/Routes/Role/Controller.pm b/lib/CatalystX/Routes/Role/Controller.pm
deleted file mode 100644 (file)
index 6918597..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package CatalystX::Routes::Role::Controller;
-
-use Moose::Role;
-use namespace::autoclean;
-
-requires 'register_actions';
-
-after register_actions => sub {
-    my $self = shift;
-    my $c    = shift;
-
-    for my $route ( $self->meta()->route_names() ) {
-        my ( $attrs, $method ) = @{ $self->meta()->get_route($route) };
-
-        $self->_add_cx_routes_action( $c, $route, $attrs, $method->body() );
-    }
-
-    for my $chain_point ( $self->meta()->chain_point_names() ) {
-        my ( $attrs, $code )
-            = @{ $self->meta()->get_chain_point($chain_point) };
-
-        $self->_add_cx_routes_action( $c, $chain_point, $attrs, $code );
-    }
-};
-
-sub _add_cx_routes_action {
-    my $self  = shift;
-    my $c     = shift;
-    my $name  = shift;
-    my $attrs = shift;
-    my $code  = shift;
-
-    my $class     = $self->catalyst_component_name;
-    my $namespace = $self->action_namespace($c);
-
-    for my $key ( keys %{$attrs} ) {
-        my $parse_meth = "_parse_${key}_attr";
-
-        next unless $self->can($parse_meth);
-
-        ( undef, my $value )
-            = $self->$parse_meth( $c, $name, $attrs->{$key} );
-
-        $attrs->{$key} = [$value];
-    }
-
-    my $reverse = $namespace ? "${namespace}/$name" : $name;
-
-    my $action = $self->create_action(
-        name       => $name,
-        code       => $code,
-        reverse    => $reverse,
-        namespace  => $namespace,
-        class      => $class,
-        attributes => $attrs,
-    );
-
-    $c->dispatcher->register( $c, $action );
-}
-
-1;