Gem omelete

E aí pessoal, hoje vou falar sobre algo que posso me orgulhar um pouco: escrevi uma ruby gem razoavelmente decente, rsrs.

Pois é, depois de algumas brincadeiras, resolvi desenvolver esta gem e depois refatorá-la para que ficasse um pouco melhor. Vou tentar descrever o que ela é e qual seu objetivo:

– Esta gem retorna objetos de cinemas, salas, filmes e horários, conforme a programação do grande portal do Uol, o Omelete

– A gem funciona como um webcrawler, onde retorna o conteúdo através do id de cinemas e filmes do próprio omelete.

Um exemplo de uso, supondo que eu queira obter informações do Cinemark Park Shopping São Caetano:

Dado que seu id no site Omelete é 650(http://omelete.uol.com.br/filmes-em-cartaz/cinema/650), devemos invocar a seguinte chamada:

agent = Omelete::MovieTheaterAgent.new 650
agent.movie_theater

Este método movie_theater lhe retorna um objeto contendo os valores, o nome e o id omelete do cinema.

Agora, vamos supor que você queira obter os filmes que estão passando no momento no Cinemark do Park Shopping São Caetano:

agent = Omelete::MovieAgent.new 650
agent.movies

Este método movies retorna um array com objetos contendo informações básicas sobre os filmes, como nome, gênero, censura, tempo de duração, url do poster do omelete e também o id omelete de cada filme. Caso você queira obter informações mais detalhadas, como sinopse, elenco e diretor, deve invocar o seguinte:

agent = Omelete::MovieDetailsAgent.new 2
agent.movie

Supondo que o id do filme do qual você deseja obter informações detalhadas, seja 2.

Não vou me extender muito por aqui, caso você queira ver mais informações como a maneira de obter salas e horários, ou caso queira contribuir com este projeto, peço para que visite o repositório da gem:

https://github.com/mvoto/omelete

Espero que gostem e contribuam.

Anúncios

Rails Templates

Estou feliz por voltar a escrever no blog e este é o primeiro post de 2011, falando nisso, feliz 2011 atrasado para todos !

E hoje o assunto a ser tratado é algo que agiliza bastante a rotina de um railer criar novos projetos com o ambiente que prefere. Bom, eu sou um pouco suspeito para falar disto pois sou da escola do Java, onde costumamos perder bastante tempo configurando, isso pelo menos até conhecer o maven e seu famoso arquivo pom.xml, mas mesmo assim sempre tinha algo que dava algum problema e o tempo gasto em configurar um ambiente e um projeto novo era alto demais. Graças a Deus, com o Rails não temos esse problema porque podemos ter um template com gems a serem instaladas, arquivos a serem copiados e configurações a serem feitas.

Eu não poderia escrever este post sem antes citar o Daniel Lopes que é instrutor da e-Genial e ministrou cursos de rails que pude participar em meados de 2010. Em um destes cursos o Daniel citou sobre templates e para darmos uma conferida em seu github. Depois de muito tempo após o curso acabei olhando somente agora este conteúdo e gostei muito, comecei a utilizá-lo em minha rotina e estou aprovando. Se tiverem tempo, dêem uma olhada em meu github, a aplicação que clonei e personalizei, a my_template.

O seu uso é bem simples, se quiser personalizar, basta clonar o projeto e alterar o arquivo template.rb da maneira que quiser, poderá também alterar os arquivos que deseja incluir em seus futuros projetos. Se preferir utilizar direto do github, pode usar:

rails new app -m github.com/danielvlopes/base_app/raw/master/template.rb

ou:

rails new app -m github.com/mvoto/my_template/raw/master/template.rb

Para resumir, templates facilitam seu trabalho na hora de criar um novo projeto rails, você não perde tempo instalando gems, nem jogando javascripts, imagens, css e arquivos de layout que costuma jogar em alguns projetos com seus padrões. Recomendo fortemente !