--- trunk/lib/App/RoomReservation.pm 2009/06/30 15:10:55 1133 +++ trunk/lib/App/RoomReservation.pm 2009/07/01 17:35:48 1147 @@ -24,9 +24,29 @@ sub as_markup { my ($self) = @_; - App::RoomReservation::Room->new->room_markup - . qq|seat reservation| - ; + + my $url = $self->url_for( 'Reservation/create_as_markup' ); + + return + App::RoomReservation::Room->new->room_markup + . qq|seat reservation| + ; +} + +# my $url = $self->uri_for( 'Reservation/create_as_makrup' ); + +sub url_for { + my ( $self, $to ) = @_; + my $app = ref($self); + $app =~ s{^(App::[^:]+)::.+$}{$1}; + $app .= '::' . $to; + + my ( $class, $method ) = split(m{/}, $app); + $method =~ s{\?.+$}{}; # remove arguments + Class::MOP::load_class( $class ); + die "$class doesn't implement $method" unless $class->meta->has_method($method); + + return "http://192.168.1.13:3000/$app"; } __PACKAGE__->meta->make_immutable;