PageRenderTime 14ms CodeModel.GetById 1ms app.highlight 10ms RepoModel.GetById 1ms app.codeStats 0ms

/doc/br/reference.md

http://github.com/keplerproject/orbit
Markdown | 182 lines | 117 code | 65 blank | 0 comment | 0 complexity | c977ff83c848e299bf486fa00f6ce867 MD5 | raw file
  1## Manual de ReferЖncia 
  2
  3Este ж um pequeno manual de refЖncia dos mжtodos do Orbit e sua aplicaушes. 
  4
  5## Mзdulo `orbit` 
  6
  7**orbit.new([*app*])** - cria uma nova aplicaусo Orbit, retornando esta (como um mзdulo).
  8Se *app* for uma string este ж o nome da aplicaусo e define o campo\_NAME.
  9Se *app* for uma tabela, esta serр usada no lugar de uma tabela vazia.
 10Isso quer dizer que vocЖ pode passar `orbit.new` para a funусo `module` 
 11
 12**orbit.htmlify(*func*[, *func*...])** - modifica o ambiente de *func* para incluir funушes que gerem HTML 
 13
 14## Aplicaушes Orbit 
 15
 16**app.run(*wsapi\_env*)** - ponto de entrada WSAPI para aplicaушes, gerado pelo Orbit 
 17
 18**app.real\_path** - A raiz da aplicaусo no sistema de arquivos,
 19por default ж o path inferido pelo disparador WSAPI (`wsapi.app\_path`), mas pode ser redefinido 
 20
 21**app.mapper** - mapeador usado pelo `app:model`, por default ж uma instРncia do `orbit.model`,
 22mas pode ser invalidado 
 23
 24**app.not\_found** - tratador padrсo, envia uma respota 404 para o cliente, pode ser redefinido.
 25O handler recebe um objeto `web` 
 26
 27**app.server\_error** - tratador de erro, envia uma resposta 500 com os detalhes de stack para o cliente,
 28pode ser redefinido. O tratador recebe um objeto `web`
 29
 30**app:dispatch\_get(*func*, *patt*[, *patt*...])** - instala a funусo func* como um tratador de GET
 31para os padrшes *patt*. *func* recebe um objeto `web` e capturas
 32
 33**app:dispatch\_post(*func*, *patt*[, *patt*...])** - instala *func* como um tratador de POST
 34para os padrшes *patt*. *func* recebe um objeto `web` e capturas 
 35
 36**app:dispatch\_wsapi(*func*, *patt*[, *patt*...])** - instala *func* como um tratador WSAPI
 37para os padrшes *patt*. *func* recebe um objeto `web` e capturas 
 38
 39**app:dispatch\_static(*patt*[, *patt*...])** - instala um tratador de arquivos estрticos
 40para os padrшes *patt*. Este tratador assume que PATH\_INFO ж um arquivo relativo a
 41`app.real_path` e o envia para o cliente. O tipo MIME ж detectado pela extensсo
 42(sendo o padrсo application/octec-stream). 
 43
 44**app:serve\_static(*web*, *filename*)** - retorna o conteЩdo do arquivo *filename*
 45(que pode estar em qualquer lugar do sistema), e define os cabeуalhos apropriados
 46de acordo com o tipo MIME do arquivo 
 47
 48**app:htmlify(*patt*[, *patt*...])** - o mesmo que `orbit.htmlify`,
 49mas altera todas funушes do mзdulo da aplicaусo que correspondem aos padrшes *patt* 
 50
 51**app:model(...)** - chama `app.mapper:new(...)`,
 52de forma que o comportamento depende do mapeador que vocЖ estiver usando 
 53
 54## Mжtodos `web' 
 55
 56Os objetos *web* herdam as funушes do mзdulo `wsapi.util` como mжtodos 
 57
 58**web.status** - status para ser enviado para o servidor (padrсo: "200 Ok") 
 59
 60**web.headers** - cabeуalhos para serem enviados para o servidor,
 61uma tabela Lua (que por padrсo tem Content-Type como text/html) 
 62
 63**web.response** - corpo a ser enviado para o cliente (a princьpio vazio) 
 64
 65**web.vars** - ambiente WSAPI original 
 66
 67**web.prefix** - prefixo da aplicaусo (se determinado no mзdulo da aplicaусo) ou SCRIPT\_NAME 
 68
 69**web.suffix** - sufixo da aplicaусo (se determinado no mзdulo da aplicaусo) 
 70
 71**web.real\_path** - localizaусo da aplicaусo no sistema, obtido a partir de wsapi\_env.APP\_PATH,
 72ou do real\_path do mзdulo, ou "." 
 73
 74**web.doc\_root, web.path\_info, web.script\_name, web.path\_translated, web.method** -
 75raiz de documentos do servidor, PATH\_INFO, SCRIPT\_NAME, PATH\_TRANSLATED,
 76e REQUEST\_METHOD (convertido para minЩsculas)
 77
 78**web.GET, web.POST** - variрveis GET and POST 
 79
 80**web.input** - uniсo de web.GET e web.POST
 81
 82**web.cookies** - cookies enviados pelo browser
 83
 84**web:set\_cookie(*name*, *value*)** - define um cookie a ser enviado de volta ao browser 
 85
 86**web:delete\_cookie(*name*)** - apaga um cookie 
 87
 88**web:redirect(*url*)** - define o status e cabeуalhos e redireciona o cliente para *url* 
 89
 90**web:link(*part*, [*params*])** - cria um link interno da aplicaусo,
 91utilizando web.prefix e web.suffix, e codificando *params* como uma query string 
 92
 93**web:static\_link(*part*)** - se o ponto de entrada de uma aplicaусo ж um script,
 94ao invжs de um path, cria um link para o vpath da aplicaусo
 95(por exemplo, se o app.prefix for /foo/app.ws, cria um link para /foo/*part*),
 96caso contrрrio equivale a web:link 
 97
 98**web:empty(*s*)** - retorna true se *s* for nil ou uma string vazia (com zero ou mais espaуos) 
 99
100**web:empty\_param(*name*)** - retorna true se os parРmetros de entrada forem vazios (como web:empty) 
101
102**web:page(*name*, [*env*])** - carrega e trata uma pрgina Orbit de nome *name*.
103Se *name* se inicia com / a pрgina ж relativa Я raiz de documentos,
104caso contrрrio ж relativa ao path da aplicaусo. Retorna a pрgina tratada.
105*env* ж um ambiente opcional com variрveis extra 
106
107**web:page_inline(*contents*, [*env*])** - trata uma pрgina Orbit embutida 
108
109## Mзdulo `orbit.cache`
110
111**orbit.cache.new(*app*, [*base\_path*])** - cria um cache de pрginas para a aplicaусo *app*,
112em memзria ou no sistema de arquivos como *base\_path* (*nсo* relativo ao path da aplicaусo!),
113retorna o objeto de cache 
114
115**a\_cache(*handler*)** - torna o tratador *handler* cacheado, retornando um novo tratador;
116utiliza o PATH\_INFO como chave do cache 
117
118**a\_cache:get(*key*)** - obtжm o valor armazenado na chave *key*;
119geralmente nсo utilizada, use a funусo anterior 
120
121**a\_cache:set(*key*, *val*)** - armazena um valor no cache;
122use a\_cache(*handler*) para encapsular este comportamento 
123
124**a\_cache:invalidate(*key*)** - invalida um valor do cache 
125
126**a\_cache:nuke()** - esvazia o cache 
127
128## Mзdulo `orbit.model`
129
130**orbit.model.new([*table\_prefix*], [*conn*], [*driver*])** - cria um novo mapeamento ORM (objeto relacional).
131*table\_prefix* (padrсo "") ж uma string adicionada ao inьcio dos nomes de modelos para obter nomes de tabelas;
132*conn* ж a conexсo de banco de dados (pode ser definida posteriormente);
133*driver* ж o tipo de banco de dados (atualmente "sqlite3", o padrсo, ou "mysql").
134Retorna uma instРncia do mapeador e todos os parРmetros podem ser definidos
135apзs a criaусo desta instРncia (utilizando a\_mapper.table\_prefix, a\_mapper.conn e a\_mapper.driver)
136
137**a\_mapper:new(*name*, [*tab*])** - cria um novo objeto de modelo;
138*name* ж usado junto com a\_mapper.table\_prefix para formar o nome da tabela no banco de dados;
139campos e tipos sсo instrospectados a partir da tabela.
140*tab* ж uma tabela opcional que ж usada como base para o objeto modelo, caso exista 
141
142**a\_model.model** - o mapeador para este modelo 
143
144**a\_model.name, a\_model.table\_name** - o nome do modelo e de sua tabela de armazenamento 
145
146**a\_model.driver** - o driver de banco de dados utilizado 
147
148**a\_model.meta** - metainformaусo sobre o modelo, instrospectada a partir da tabela de dados 
149
150**a\_model:find(*id*)** - busca e retorna a instРncia do modelo com o *id* passado
151(indexado atravжs da coluna `id`, numжrica,а da tabela) 
152
153**a\_model:find\_first(*condition*, *args*)** - busca e retorna a primeira instРncia do modelo
154que corresponde Я condiусo *condition*; *args* pode determinar a ordem (args.order) ou injetar
155campos de outras tabelas (args.inject) 
156
157Exemplo: `books:find_first("author = ? and year_pub > ?", { "John Doe", 1995, order = "year_pub asc" })` 
158
159**a\_model:find\_all(*condition*, *args*)** - busca e retorna todas as instРncias do modelo que correspondem
160Я condiусo *condition*; *args* pode determinar a ordem (args.order) ou injetar campos de outras tabelas
161(args.inject) 
162
163**a\_model:new([*tab*])** - cria uma nova instРncia do modelo, opcionalmente usando *tab*
164como os valores iniciais 
165
166**a\_model:find\_by\_xxx(*args*)** - busca e retorna a primeira instРncia do modelo montando
167a condiусo a partir do nome do mжtodo, como no ActiveRecord do Rails 
168
169**a\_model:find\_all\_by\_xxx(*args*)** - busca e retorna todas as instРncias do modelo montando
170a condiусo a partir do nome do mжtodo, como no ActiveRecord do Rails 
171
172Exemplo: `books:find_all_by_author_or_author{ "John Doe", "Jane Doe", order = "year_pub asc" }` 
173
174**an\_instance:save([*force\_insert*])** - grava uma instРncia no banco de dados,
175atualizando as mudanуas ou criando um novo registro caso a instРncia seja nova;
176se *force\_insert* for true sempre faz uma inserусo antes de uma atualizaусo 
177
178Se existir uma coluna chamada `created_at` esta linha ж definida como a data de criaусo do registro;
179 se existir uma coluna chamada `updated_at`, esta linha ж definida como a data de Щltima atualizaусo do registro. 
180
181**an\_instance:delete()** - remove uma instРncia do banco de dados 
182