CGILua: geração de scripts para a Web usando Lua

CGILua
Geração de scripts para a Web usando Lua

## Cabeçalhos

As funções de cabeçalho são usadas para alterar os cabeçalhos de resposta HTTP e consistem em:

`cgilua.contentheader (type, subtype)`
  Envia um cabeçalho Content-type com os valores dados de tipo e subtipo.
  Ambos os argumentos são strings: `type` é o tipo do cabeçalho; `subtype` é o subtipo do cabeçalho.
  Não retorna nada.
`cgilua.header (header, value)`
  Envia um cabeçalho genérico. Esta função não deve ser usada para gerar um cabeçalho Content-type ou Location.
  Ambos os argumentos são strings: `header` é o nome do cabeçalho e `value`, seu valor.
  Não retorna nada.
`cgilua.htmlheader ()`
  Envia o cabeçalho de um arquivo HTML (Content-type: text/html).
  Não retorna nada.
`cgilua.redirect (url, args)`
  Envia o cabeçalho para forçar o redirecionamento para a URL dada, adicionando os parâmetros na tabela `args` relativos à nova URL.
  O primeiro argumento (`url`) é a URL à qual o navegador deve ser redirecionado; o segundo (`args`) é uma tabela opcional que pode conter pares nome = valor que serão codificados para formar um URL válido (consulte a função cgilua.urlcode.encodetable).
  Não retorna nada.

## Geração de conteúdo

As funções de geração de conteúdo são usadas para produzir texto para a resposta e gerar URLs no formato do CGILua. Elas consistem em:

`cgilua.mkabsoluteurl (path)`
  Cria uma URL absoluta contendo `path` da URL dada.
  Retorna a URL absoluta resultante.
`cgilua.mkurlpath (script [, args])`
  Cria o caminho de uma URL a ser usado como link para um `script` CGILua usando a tabela opcional de argumentos (`args`). Os argumentos são usados na URL como parâmetros de string de consulta.
  Retorna a URL resultante.
`cgilua.put (string)`
  Envia a `string` dada para o cliente.
  Não retorna nada.

## Lua Pages

As funções de Lua Pages são usadas para processar templates Lua Pages e definir o comportamento desse processamento. Elas consistem em:

`cgilua.handlelp (filename)`
  Equivale a `cgilua.lp.include`, mas envia o cabeçalho HTML antes do arquivo pré-processado.
  Não retorna nada.
`cgilua.lp.include (filename)`
  Pré-processa um template Lua Page (fornecido por `filename`) e envia o resultado para o cliente.
  Não retorna nada.
`cgilua.lp.setcompatmode (boolean)`
  Ativa e desativa o modo de compatibilidade. A ativação fará com que o pré-processador de Lua Pages entenda as estruturas de campos de expressão e campos de código usadas por versões anteriores do CGILua.
  Não retorna nada.
`cgilua.lp.setoutfunc (funcname)`
  Define o nome da função de resultado de templates. O pré-processador Lua Pages gera chamadas para a função com o `funcname` fornecido (uma string).
  Não retorna nada.
`cgilua.lp.translate (string)`
  Usa o pré-processador Lua Pages para gerar uma string correspondente ao código Lua que executa expressões e/ou chunks em Lua dentro da `string` fornecida.
  Retorna uma string com o código Lua resultante.

## Variáveis do CGILua

As variáveis do CGILua oferecem informações sobre o script em processamento e as variáveis de ambiente do CGI. Elas consistem em atributos e funções:

`cgilua.script_file`
  O nome do arquivo do script em execução. Obtido de `cgilua.script_path`.
`cgilua.script_path`
  O caminho completo do arquivo do script em execução. Esta variável normalmente é igual à variável de ambiente do CGI `PATH_TRANSLATED`.
`cgilua.script_pdir`
  O diretório do script em execução. Obtido de `cgilua.script_path`.
`cgilua.script_vdir`
  O diretório virtual do script em execução. Obtido de `cgilua.script_vpath`.
`cgilua.script_vpath`
  O caminho virtual completo do arquivo do script em execução. Equivale à variável de ambiente do CGI `PATH_INFO`.
`cgilua.servervariable (varname)`
  Retorna uma string com o valor da variável de ambiente do CGI que corresponde a `varname`. Para obter uma lista das variáveis do CGI, consulte SAPI.Request.servervariable.
`cgilua.urlpath`
  O nome do script. Equivale à variável de ambiente do CGI `SCRIPT_NAME`.

## Tratamento de erros

As funções de tratamento de erros do CGILua permitem a redefinição de como os erros são tratados e apresentados ao usuário. Elas consistem em:

`cgilua.errorlog (string)`
  Envia a `string` dada para o arquivo de log de erros.
  Não retorna nada.
`cgilua.seterrorhandler (func)`
  Define a tratador de erros como `func`. Esta função é chamada pela Lua quando ocorre um erro. Ela recebe a mensagem de erro gerada pela Lua e é responsável por gerar e retornar o erro correto que deve ser usado pelo CGILua.
  Não retorna nada.
`cgilua.seterroroutput (func)`
  Define a função responsável pela apresentação de erros como `func`. Esta função é chamada pela Lua para gerar o resultado do erro.
  Não retorna nada.

## Comportamento do CGILua

O comportamento do CGILua pode ser configurado com o uso deste conjunto de funções:

`cgilua.addclosefunction (func)`
  Define uma função (`func`) para ser chamada após a execução do CGILua.
  Não retorna nada.
`cgilua.addopenfunction (func)`
  Define uma função (`func`) para ser chamada antes da execução do CGILua.
  Não retorna nada.
`cgilua.addscripthandler (ext, func)`
  Define uma função (`func`) para pré-processar os arquivos com uma determinada extensão (`ext`). A configuração padrão usa `cgilua.doscript` para processar Lua Scripts (arquivos `.lua`) e `cgilua.handlelp` para processar Lua Pages (arquivos `.lp`).
  Não retorna nada.
`cgilua.buildplainhandler (type, subtype)`
  Cria um tratador de scripts que envia o cabeçalho fornecido e o arquivo sem formatação solicitado. O cabeçalho Content-type é formado pelos dois argumentos; a função criada recebe um nome de arquivo como único argumento e retorna o nome de arquivo dado sem alterações.
  Retorna uma função.
`cgilua.buildprocesshandler (type, subtype)`
  Cria um tratador de scripts que envia o cabeçalho fornecido e o arquivo processado solicitado. O cabeçalho Content-type é formado pelos dois argumentos; a função criada recebe um nome de arquivo como único argumento e retorna o nome de arquivo dado pré-processado pela função cgilua.lp.include.
  Retorna uma função.
`cgilua.setlibdir (dir)`
  Define o diretório de bibliotecas padrão do CGILua. Esse valor é usado para criar o `LUA_PATH` usado pela função `require` (`require` é redefinida pelo CGILua).
  Não retorna nada.
`cgilua.setmaxfilesize (size)`
  Define o `tamanho` máximo (em bytes) de cada arquivo cujo upload seja feito. Esse valor é limitado pelo tamanho máximo de entrada total (consulte cgilua.setmaxinput). Esta função só passa a vigorar se usada antes do processamento dos dados de POST, portanto, seu uso em scripts é irrelevante.
  Não retorna nada.
`cgilua.setmaxinput (size)`
  Define o `tamanho` de entrada total máxima permitido (em bytes). Esta função só passa a vigorar se usada antes do processamento dos dados de POST, portanto, seu uso em scripts é irrelevante.
  Não retorna nada.

## Funções de codificação de URL

As funções de codificação do CGILua permitem que o processamento de strings de URL seja feito de maneira simples:

`cgilua.urlcode.encodetable (table)`
  Codifica em formato URL os elementos de uma `tabela`, criando uma string usada como URL para informar dados/parâmetros a outro script.
  Retorna uma string representando a tabela de argumentos codificada.
`cgilua.urlcode.escape (string)`
  Codifica em formato URL uma `string`.
  Retorna a string codificada.
`cgilua.urlcode.insertfield (args, name, value)`
  Adiciona o valor (`value`) fornecido ao campo indexado por um nome (`nome`) na tabela `args`. Se o campo já tiver um valor, será transformado em uma tabela com esse valor no índice `1` e o novo valor no índice `2`. Outros valores serão acrescentados no final da parte array da tabela criada.
  Não retorna nada.
`cgilua.urlcode.parsequery (query, args)`
  Analisa os dados codificados em formato URL do pedido. Isso pode ser a parte `query` da URL do script ou dos dados POST codificados em URL. Cada par nome = valor codificado é inserido na tabela `args`.
  Não retorna nada.
`cgilua.urlcode.unescape (string)`
  Decodifica uma `string` que usa o formato URL.
  Retorna a string decodificada.

## Funções auxiliares

`cgilua.doscript (filepath)`
  Executa um arquivo (dado por `filepath`). Gera um erro se ocorrer. Em caso de êxito, retorna os valores retornados pela execução.
`cgilua.pack (...)`
  Retorna uma nova tabela que armazena todos os argumentos passados.
`cgilua.splitpath (path)`
  Retorna duas strings com as partes "diretório" e "arquivo" do `path` fornecido.

## Índice alfabético

addclosefunction
addopenfunction
addscripthandler
buildplainhandler
buildprocesshandler
contentheader
doscript
encodetable (urlcode)
errorlog
escape (urlcode)
header
htmlheader
include (lp)
insertfield (urlcode)
mkabsoluteurl
mkurlpath
pack
parsequery (urlcode)
handlelp
lp
put
redirect
script_file
script_path
script_pdir
script_vdir
script_vpath
servervariable
setcompatmode (lp)
seterrorhandler
seterroroutput
setlibdir
setmaxfilesize
setmaxinput
setoutfunc (lp)
splitpath
urlcode
unescape (urlcode)
urlpath

$Id: reference.html,v 1.4 2005/11/03 18:48:57 carregal Exp $