Provided by: liburi-nested-perl_0.10-4_all bug

Name

       URI::Nested - Nested URIs

Synopsis

         package URI::jdbc;
         use parent 'URI::Nested';
         sub prefix       { 'jdbc' }
         sub nested_class { undef  }
         sub subprotocol  { shift->nested_uri->scheme(@_) }

         package main;
         my $jdbc_uri = URI->new('jdbc:oracle:scott/tiger@//myhost:1521/myservicename');
         my $nested_uri = $jdbc_uri->nested_uri;

Description

       This class provides support for nested URIs, where the scheme is a prefix, and the
       remainder of the URI is another URI. Examples include JDBC URIs
       <http://docs.oracle.com/cd/B14117_01/java.101/b10979/urls.htm#BEIJFHHB> and database URIs
       <https://github.com/theory/uri-db>.

Interface

       The following differences exist compared to the "URI" class interface:

   Class Method
       "prefix"

       Returns the prefix to be used, which corresponds to the URI's scheme. Defaults to the last
       part of class name.

       "nested_class"

       Returns the URI subclass to use for the nested URI. If defined, the nested URI will always
       be coerced into this class if it is not naturally an instance of this class or one of its
       subclasses.

   Constructors
       "new"

         my $uri = URI::Nested->new($string);
         my $uri = URI::Nested->new($string, $base);

       Always returns a URI::Nested object. $base may be another URI object or string. Unlike in
       URI's "new()", schemes will always be applied to the URI and the nested URI if they does
       not already schemes. And if "nested_class" is defined, the nested URI will be coerced into
       that class.

   Accessors
       "scheme"

         my $scheme = $uri->scheme;
         $uri->scheme( $new_scheme );

       Gets or sets the scheme part of the URI. When setting the scheme, it must always be the
       same as the value returned by "prefix" or an exception will be thrown -- although the
       letter casing may vary. The returned value is always lowercase.

       "nested_uri"

         my $nested_uri = $uri->nested_uri;

       Returns the nested URI.

   Instance Methods
       "abs"

         my $abs = $uri->abs( $base_uri );

       Returns the URI::Nested object itself. Unlike URI's "abs()",
       $URI::ABS_ALLOW_RELATIVE_SCHEME is ignored.

       "rel"

         my $rel = $uri->rel( $base_uri );

       Returns the URI::Nested object itself.

Support

       This module is stored in an open GitHub repository <http://github.com/theory/uri-db/>.
       Feel free to fork and contribute!

       Please file bug reports via GitHub Issues <http://github.com/theory/uri-db/issues/> or by
       sending mail to bug-URI-db@rt.cpan.org <mailto:bug-URI-db@rt.cpan.org>.

Author

       David E. Wheeler <david@justatheory.com>

Copyright and License

       Copyright (c) 2013 David E. Wheeler. Some Rights Reserved.

       This module is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.