16.04.2013 Views

Download - Locaweb

Download - Locaweb

Download - Locaweb

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

58 locaweb<br />

Programando.com LUA<br />

nenhuma os usa de modo tão extensivo quanto Lua. Nela,<br />

usamos tabelas para implementar estruturas de dados,<br />

como arrays, estruturas (registros), conjuntos e listas.<br />

Também inserimos conceitos mais abstratos, como objetos,<br />

classes e módulos. Segue um exemplo interessante de como<br />

usar Tabela como Arrays:<br />

Mes = {[1] = "Janeiro", [2] = "Fevereiro", [3]<br />

= "Março", [4] = "Abril", [5] = "Maio", [6] =<br />

"Junho", [7] = "Julho", [8] = "Agosto", [9] =<br />

"Setembro", [10] = "Outubro", [11] =<br />

"Novembro", [12] = "Dezembro"}<br />

print(Mes[3]) -- imprime Março<br />

Em Lua, existem dois tipos de for: o numérico e o<br />

genérico. Usaremos o for genérico e o iterador ipairs,<br />

que imprime as chaves da tabela de forma ordenada:<br />

for i, v in ipairs (Mes) do<br />

print (i .. " = " .. v)<br />

end<br />

A saída do for acima será a seguinte:<br />

1 = Janeiro<br />

2 = Fevereiro<br />

3 = Março<br />

4 = Abril<br />

5 = Maio<br />

6 = Junho<br />

7 = Julho<br />

8 = Agosto<br />

9 = Setembro<br />

10 = Outubro<br />

11 = Novembro<br />

12 = Dezembro<br />

Lua para web<br />

Como não poderia faltar em toda linguagem de script<br />

que se preze, Lua possui um Framework Web MVC. O Orbit<br />

é o framework para aplicações web da ferramenta, que alia<br />

uma maneira declarativa de associar URLs e funções da<br />

aplicação à comunicação fácil, com bancos de dados<br />

relacionais. Ainda não evoluiu tanto quanto frameworks do<br />

tipo Rails e Django, mas é um projeto muito promissor.<br />

No site do Orbit, há mais informações a respeito da<br />

ferramenta: http://orbit.luaforge.net.<br />

Há um gerenciador de conteúdo para web<br />

desenvolvido pela Fábrica Digital chamado Publique.<br />

Apesar de não ter código aberto, é bem interessante.<br />

Ainda para web, temos a opção do Sputnik, que é um<br />

wiki extensível disponível como software livre.<br />

* A Lua tem como diferenciais o uso de<br />

técnicas de programação funcional, o<br />

recurso ubíquo de tabelas como<br />

estruturas de dados, a utilização de<br />

cortinas e a comunicação com código C<br />

LuaRocks<br />

LuaRocks é um sistema de distribuição e gerenciamento<br />

para módulos Lua. Esta ferramenta permite que você instale<br />

módulos Lua como pacotes independentes chamados de<br />

“rocks”, que também contêm informação sobre<br />

dependência de versão. Esta informação, por sua vez, é<br />

usada em tempo de instalação, de modo que, quando um<br />

rock é requisitado, todos os rocks dos quais ele depende<br />

sejam instalados. Também é usada em tempo de execução.<br />

Assim, quando um módulo é requerido, a versão correta é<br />

carregada. O LuaRocks aceita repositórios local e remoto,<br />

além de múltiplos rock trees locais. O site do projeto é<br />

www.luarocks.org. Nesse endereço, estão disponíveis mais<br />

informações para quem deseja se aprofundar no assunto.<br />

Com o LuaRocks devidamente instalado, podemos<br />

realizar uma pesquisa para checar a existência de um rock:<br />

# luarocks search sql<br />

Search results:<br />

Rockspecs and source rocks:<br />

LSQLITE3<br />

0.7-1 (rockspec) - http://luarocks.org/repositories/rocks<br />

LUASQL-MYSQL<br />

2.2.0-1 (rockspec) - http://luarocks.org/repositories/rocks<br />

2.2.0-1 (src) - http://luarocks.org/repositories/rocks<br />

LUASQL-SQLITE3<br />

2.2.0-1 (rockspec) - http://luarocks.org/repositories/rocks<br />

2.2.0-1 (src) - http://luarocks.org/repositories/rocks<br />

Ele encontrou 3 rocks. Agora, podemos instalar o rock<br />

que satisfaça nossa necessidade:<br />

# luarocks install luasql-sqlite3<br />

Conclusão<br />

Lua tem muito a oferecer, como uma linguagem que<br />

pode atender a inúmeras necessidades. Se você quer<br />

aprender mais sobre o tema, leia o espetacular livro<br />

Programming In Lua, Second Edition, escrito por Roberto<br />

Ierusalimschy, que contém muita informação para quem<br />

deseja conhecer melhor os segredos da Lua.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!