Name¶
lua-uri-urn-isbn - ISBN URN support for Lua URI library
Description¶
The class "uri.urn.isbn" is used for URNs with the NID 'isbn', that
is, URIs which begin "urn:isbn:". It inherits from the uri.urn
class.
Some of the functionality of this class depends on the
lua-isbn(3) module
being installed, although it can be used without that. In particular, if the
module is installed then full checksum validation of the ISBN is performed,
whereas without it the ISBN is only checked for invalid characters. The ISBN
value is normalized to include hyphens in the conventional places if the
lua-isbn module is installed (the exact hyphen positions depend on the
number), but without it all hyphens are removed instead. If the ISBN ends in a
checksum of 'x', then it folded to uppercase.
Methods¶
All the methods defined in
lua-uri(3) and
lua-uri-urn(3) are
supported, as well as the following:
- uri:isbn(...)
- Get or set the ISBN value as an object of the type provided by the
"isbn" class in the lua-isbn(3) library. This method will
throw an exception if this library is not installed, or if the object
supplied is not a valid ISBN object (it will currently accept a string,
but you shouldn't rely on this).
- uri:isbn_digits(...)
- Get or set the ISBN value as a string containing just the numbers (and
possibly an 'X' as the last digit). There will be no hyphens in this
value, and it should be exactly 10 or 13 characters long.
If a new value is provided then it must not be nil, and will be validated in
the normal way, causing an exception if it is invalid.
References¶
This implements the 'isbn' NID defined in "RFC 3187", and is
consistent with the same NID suggested in "RFC 2288".