62 |
|
|
63 |
# my $url = $self->uri_for( 'Reservation/create_as_makrup' ); |
# my $url = $self->uri_for( 'Reservation/create_as_makrup' ); |
64 |
|
|
65 |
|
sub url_mapping {{ |
66 |
|
"App::RoomReservation/as_markup" => 'zimbardo', |
67 |
|
"App::RoomReservation::Reservation/create_as_markup" => 'zimbardo/create', |
68 |
|
"App::RoomReservation::Confirmation/verify_as_markup?token=" => 'zimbardo/verify/', |
69 |
|
"App::RoomReservation::Confirmation/cancel_as_markup?token=" => 'zimbardo/cancel/', |
70 |
|
}} |
71 |
|
|
72 |
|
our $urls; |
73 |
|
use Data::Dump qw/dump/; |
74 |
|
|
75 |
sub url_for { |
sub url_for { |
76 |
my ( $self, $to ) = @_; |
my $self = shift; |
77 |
|
my $to = shift; |
78 |
|
my $args = join('', @_); |
79 |
my $app = ref($self); |
my $app = ref($self); |
80 |
$app =~ s{^(App::[^:]+)::.+$}{$1}; |
$app =~ s{^(App::[^:]+)::.+$}{$1}; |
81 |
$app .= '::' . $to; |
$app .= '::' . $to; |
85 |
Class::MOP::load_class( $class ); |
Class::MOP::load_class( $class ); |
86 |
die "$class doesn't implement $method" unless $class->meta->has_method($method); |
die "$class doesn't implement $method" unless $class->meta->has_method($method); |
87 |
|
|
88 |
|
$urls->{$app}++; |
89 |
|
warn "XXX urls = ",dump($urls); |
90 |
|
|
91 |
|
my $map_to = url_mapping->{$app}; |
92 |
|
$app = $map_to if $map_to; |
93 |
|
|
94 |
return |
return |
95 |
$self->request_url->scheme . '://' . $self->request_url->authority . '/' . $app; |
$self->request_url->scheme . '://' . $self->request_url->authority . '/' . $app . $args; |
96 |
} |
} |
97 |
|
|
98 |
__PACKAGE__->meta->make_immutable; |
__PACKAGE__->meta->make_immutable; |