.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "LUA-URI-DATA 3" .TH LUA-URI-DATA 3 "2012-00-00" "1.1" "Lua uri.data module" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "Name" .IX Header "Name" lua-uri-data \- data \s-1URI\s0 support for Lua \s-1URI\s0 library .SH "Description" .IX Header "Description" The class \f(CW\*(C`uri.data\*(C'\fR is used for URIs with the \f(CW\*(C`data\*(C'\fR scheme. It inherits from the uri class. .PP Some of the features of this module require the \fBlua\-datafilter\fR\|(3) library to be installed, but \s-1URI\s0 objects can still be created from \f(CW\*(C`data\*(C'\fR URIs even if it isn't available. .PP Any \f(CW\*(C`data\*(C'\fR \s-1URI\s0 containing an authority part is considered to be invalid, as is one whose path does not contain a comma. If the \s-1URI\s0 has the \&\f(CW\*(C`;base64\*(C'\fR parameter, then the data must consist only of characters allowed in base64 encoded data (upper and lowercase \s-1ASCII\s0 letters, digits, and the forward slash and plus characters). .SH "Methods" .IX Header "Methods" All the methods defined in \fBlua\-uri\fR\|(3) are supported. The \f(CW\*(C`userinfo\*(C'\fR, \&\f(CW\*(C`host\*(C'\fR, and \f(CW\*(C`port\*(C'\fR methods will always return nil, and will throw an exception when passed anything other than nil. The \f(CW\*(C`path\*(C'\fR method will throw an exception if given a new path which is nil or not valid for the \f(CW\*(C`data\*(C'\fR scheme. .PP The following additional methods are supported: .IP "uri:data_bytes(...)" 4 .IX Item "uri:data_bytes(...)" Get or set the data stored in the \s-1URI.\s0 The existing data is decoded and returned. If a new value is supplied it must be a string, and will cause the path of the \s-1URI\s0 to be changed to encode the new data. The method will choose the encoding which will result in the smallest \s-1URI,\s0 unless the datafilter module is not installed, in which case it will always use percent encoding. .Sp An exception is thrown if the datafilter module is not installed and the data in the \s-1URI\s0 is encoded as base64, although a data \s-1URI\s0 using percent encoding will not cause an exception. .Sp The data passed in and returned should not be encoded in any special way, that is taken care of by the library. .IP "uri:data_media_type(...)" 4 .IX Item "uri:data_media_type(...)" Get or set the media type (\s-1MIME\s0 type) stored in the \s-1URI\s0's path before the comma. This should not include the \f(CW\*(C`;base64\*(C'\fR parameter, which will be included in the path automatically when appropriate. .Sp If there is no media type given in the \s-1URI\s0 then the default value of \&\f(CW\*(C`text/plain\*(C'\fR will be returned, and if there is no \f(CW\*(C`charset\*(C'\fR parameter given then the default \f(CW\*(C`;charset=US\-ASCII\*(C'\fR will be included. .Sp The media type is encoded and decoded automatically by this method. .SH "References" .IX Header "References" This class is based on \*(L"\s-1RFC 2397\*(R"\s0.