Catalyst-ControllerRole-At

 view release on metacpan or  search on metacpan

t/at.t  view on Meta::CPAN

At(:controller/:action/{id:Int})
At(./:action/{id:Int})

At(./:action/{}/)

Under(root) At(a/b/c/{id}/...)
Under(root) At($action/{id}/{date}
/)


sub myaction($view, $model) :At($local/{id}) {
  $view->ok($model->find($id));
}

  NamedFields(id=>$args[0])
  
sub myaction :At($local/{id:Int}?{page}{order:Int}) {
  $_->view->ok($_->model->find($_{id})
    || $_->detach('/not_found'));
}

  sub notfound :At($local/{id:Int}?{page}&{order:Int}) {
    $_->view->not_found(message => "Id $_{id} is not in the database");
  }

  sub myaction :At($local/{u:User}?{page}&{order:Int}) {
    $_->view->ok($_{u});
  }

sub myaction($view, $model M::Schema::User::Result) :At($local/{id}) {
  $view->ok($model->find($id));
}


Via(action)
Via(/path/to)
Via(../to)
Via(../:action)
Via(:up/:action)

t/at.t  view on Meta::CPAN

?? What URL paths are mapped here
?? what does 'warn $_{id}' do?
?? Would :Via work as well as :Under?


At(/foo/{$:User.0}/{$:User.1}%{$:User.age}{$:User.name}
At(/user/{id:User}%{params*:User}

If a Type::Foo accepts context, then $c is part of any coercions

sub myaction(User $u) :At(/user/{id:User}) {

}


sub foo :Local Named(foo=>$arg[0],bar=>$query{id}) 


sub foo :At(./{id:User}) { ... }
sub foo :At(./{id:User,User.email}) { ... }
sub foo :At(./{id:User,User.email}) { ... }


sub user :At(./{id:User} { }
  sub friend :Via(user) At({id:Friend[user:User.id


#######

sub myaction([$id1,$id2]->User $u) At(users/{id1:Int}/{id2:Int})
sub myaction([Arg,Arg]->User $u) At(users/{id1:Int}/{id2:Int})

# User isa Model::Type::User

sub myaction(User $u) Via(root) At(users/{User.0:id1}/{User.1:id2})
{
  $_{User} isa Model::Schema::User::Result
}

OR

sub myaction([id1,id2]->User $u ==> UserResultSet) 
    Via(root) At(users/{id1:Int}/{id2:Int})
{
  $_{User} isa Model::Schema::User::Result
}

is User->coerce([id1,id2])

Model::Types::User

sub ACCEPT_CONTENT {



( run in 1.592 second using v1.01-cache-2.11-cpan-65fba6d93b7 )