Rails: ActiveRecord::Validations para validar o formato e a veracidade dos e-mail 1

Posted by Herminio on agosto 20, 2009

Todos nós sabemos que o Rails tem validações prontas para serem utilizadas. Isso se dá ao fato da sua classe de herdar do ActiveRecord.

Uma maneira bastante utilizada é validar o formato de um email utilizando expressões regulares e tem o rubular para fazer testes desses matchers. Assim:

class Person < ActiveRecord::Base
    validates_format_of :email,
                        :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
end

Bem, com isso conseguimos nossa validação de um formato mas não está 100% perfeita, pois permite que o usuário possa digitar um email não valido passando apenas no format, por exemplo:

#
# email invalido pois não tem nenhum servidor de email que responda por gmail.com em vez de gmail.com
#
alguma_coisa@gmaio.com

Por isso iremos utilizar o plugin Email-Veracity. E vamos melhorar a nossa validação, basta ir na pagina do Email-Veracity e fazer o download do plugin para a pasta vendor/plugins/ no seu projeto.

require 'email_veracity'

class Person < ActiveRecord::Base
    validates_format_of :email,
                        :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i,
                        :if => :is_a_valid_email?

    def is_a_valid_email?
        address = EmailVeracity::Address.new("#{self.email}")
        address.valid?
    end
end

Bem, agora podemos verificar se é um email 100% validado, onde fazemos um require no modulo de email_veracity e incluimos um if no validates_format_of que faz uma chamada ao método is_a_valid_email? se esse método retorna true faz a validação se retorna false não valida, podemos notar que o método implicitamente da um return em address.valid? bem é isso espero que tenham gostado.

Criando aplicação com uma determinada versão do Rails instalada em sua máquina 3

Posted by Herminio on maio 19, 2009

Aqui iremos vê como criar uma aplicação nova e informar qual versão do Rails iremos utilizar, dado que esteja mais de uma versão instalada em sua máquina. Bem digamos que eu tenha mais de uma versão do Rails instalada na minha maquina. Por exemplo a versão 2.3.2 e a 2.2.2 e eu quero criar uma nova app que venha a utilizar a versão 2.2.2. Como eu faço para dizer que ela vai utilizar a versão que eu gostaria que utiliza-se? É super simples basta utilizar assim:

Veja que no comando eu passo rails versão e o nome da minha aplicação se eu inverter a ordem para rails nome da aplicação e versão ele irá utilizar a versão mais atual do rails. E como eu sei que deu certo esse comando? Ou qual versão a minha aplicação está utilizando?

Bem, estou postando esse comando, porque uma vez eu precisei e passei algumas horas para resolver esse meu problema.

Compilando/Instalando o Ruby, Rails e RubyGems no Ubuntu. 1

Posted by Herminio on maio 07, 2009

Bem, irei mostra como instalar/compilar o ruby, rails e rubygems no ubuntu, sem usar os pacotes debian based, e instalando da fonte.

Escolhi a compilação aparti do instalador, para que ele fique otimizado para a minha distribuição, assim tendo um melhor desempenho.

Outro motivo de não utilizar o “apt-get -y install pacote” é pelo simples fato de que o patchlevel que contem no repositório é antigo em relação ao pacote mais atual com correções de bugs e otimizações. Então vamos iniciar a nossa instalação.

Pré-Requisitos
Bem os pacotes que seram instalados, há suas razões como por exemplo o OpenSSL, o ruby por sua vez usa para funções de criptografia, acesso a serviços web sobre SSL… enfim:

Instalando o Ruby

Primeiramente vamos fazer download da ultima versão 1.8.x do ruby. Então quando formos instalar o ruby vamos passar os caminhos dos pacotes que instalamos como OpenSSL, zlib readline, pois a maioria dos ambientes Rails fará uso deles. Faremos a instalação com o modo de super-usuário(root). Lembrando que em ftp://ftp.ruby-lang.org/pub/ruby/ você pode escolher qual versão quer instalar, basta continuar a seguir os passos, aqui vamos instalar a versão 1.8.7 patchlevel 160.

Por padrão, o ruby é instalado em /usr/local, mas um simples which ruby será mostrado o local da instalação. E um ruby -v irá mostrar a versão e o patchlevel do ruby instalado. No nosso caso ruby 1.8.7 (2008-08-11 patchlevel 160) [i686-linux]

Para se certificar de que todas as bibliotecas estão acessíveis a partir do Ruby, digite a seguinte linha no shell:
Se este comando só retornar a string instalacao_com_sucesso é porque está funcionando como deveria. Agora vamos colocar o auto-complete no irb.

Quando termina de carregar o irb tente digitar 'Str' e dê tab se ele mostrar as opções é porque está funcionando o auto-complete.

Instalando o RubyGems

Uma vez que seu ambiente ruby estiver funcionando é hora de instalar o RubyGems. Vamos no site http://rubyforge.org/projects/rubygems/ e lá terá a lista da ultima versão do rubygems, clique em download e baixe a versão que termina com a compactação .tgz e a versão que estaremos utilizando é a 1.3.3, vamos instalar em modo super-usuário:
Novamente você pode utilizar o which gem e o gem -v e agora que temos o Ruby e o RubyGems instalados no Ubuntu, vamos adicionar nossas gems. Por exemplo:

Pronto âmbiente pronto para desenvolver aplicações Ruby e Rails. As demais instalações como banco de dados fica a seu criterio.

Minha Palestra no Primeiro Evento CearáOnRails’09

Posted by Herminio on abril 12, 2009

Minha Primeira Palestra no Primeiro Evento Ceará On Rails.
View more presentations from hidenowt.
Links Adicionais, Palestra-1
http://pt.wikipedia.org/wiki/Http
http://pt.wikipedia.org/wiki/Crud
http://pt.wikipedia.org/wiki/REST
http://weblog.rubyonrails.org/search?q=route
http://apidock.com/rails/ActionController/Routing/RouteSet
http://apidock.com/rails/ActionController/Routing
http://railscasts.com/episodes?search=route

Espero que gostem e aproveitem o material. Alguma duvida ou sugestão deixar comentários, grato!

Primeiro Encontro CearaOnRails Amanha 08-04-2009

Posted by Herminio on abril 07, 2009

Primeiro encontro CearáOnRails’09

CearáOnRails – Grupo de Usuários Ruby e Rails do Ceará

Websitehttp://www.cearaonrails.org

Lista de Discussãohttp://groups.google.com.br/group/cearaonrails

Local: Faculdade Christus.

Endereço: Campus Dom Luís, está situado na Avenida Dom Luís, 911, Bairro Aldeota, próximo ao Shopping Aldeota. Localização com o Google Maps.

Contato: (85) 8884.8466

Data: Dia 08/04/2009 [quarta-feira] das 19:00h as 22:00h no Auditório do primeiro andar.

Palestras

19:00 às 19:10 Abertura do Evento.

19:10 às 19:50 Palestra: Roteamento Rails de fora para dentro.
Resumo: Entender como é o funcionamento das rotas, como o rails trata as requisições http enviadas a ele por interação de request/response E se há rotas mapeadas no sistema e finalmente como melhor utilizá-las, se tornando url’s intuitivas.
Palestrante: Hermínio Torres – Ccoordenador/Membro do grupo CearáOnRails e Programador Ruby.

19:50 às 20:40 Palestra: Gerência de Projetos com Scrum.
Resumo: O Scrum é uma das metodologias de gerência de projetos. O que é Scrum? Os papéis no Scrum. O conceito de Sprint. Product Backlog. Sprint Planning Meeting. Scrum Daily Meeting. Sprint Review. Sprint Retrospective.
Palestrante: Liliana Pedrosa Pinheiro Carrhá – Analista de sistemas, especialista em Engenharia de Software. Atuação na coordenação de projetos de desenvolvimento e suporte a soluções com foco em melhoria de processo em desenvolvimento, implantação e treinamento de projetos. Conhecimentos adquiridos: UML, RUP, Scrum, Gerência de Projetos, MPS.Br, CMMI, Java, SQL Server, MySQL, ITIL e Redes.

20:40 às 21:00 Pausa do Evento(Coffe-Break).

21:00 às 21:50 Palestra: Cloud On Rails.
Resumo: Conhecer como anda o mercado europeu e uma startup que utiliza programação em nuvem onde a idéia é ser algo similar ao twitter onde você pode seguir, adicionar amigos e dizer quem pode visualizar a suas musicas.
Palestrante: Hannes Tydén – Programador Ruby e Membro do Ruby User Group Berlin, Developer Startup SoundCloud.

21:50 às 22:00 Fechamento do Evento.

Rails para upload de arquivos e imagens usando o plugin paperclip 2

Posted by Herminio on março 24, 2009

Bem, irei mostrar como fazer upload de arquivos utilizando o paperclip e poderemos notar como é super simples de utilizar. Se o arquivo for imagem iremos precisar do imagemagick instalado na maquina onde irá ficar sua aplicação, pois o plugin utiliza o imagemagick para mexer com imagens.

Para o download do paperclip existe duas maneiras. Uma é baixando pelo próprio rails e a outra é indo no site e fazendo o download e descompactando na sua aplicação.

O paperclip por sua vez requerer algumas colunas no modelo para que seja necessário o seu funcionamento. E quais são elas?

Pois bem, digamos que na sua aplicação exista o modelo user, onde cada user contem uma imagem que é o seu avatar.  Podemos fazer o seguinte:

Agora iremos trabalhar o paperclip a nível de model. Vamos colocar toda a nossa regra de negocio e veremos como o sistema deverá tratar o upload de arquivos.

Bem não iremos fazer nenhuma modificação nos controllers. Então vamos partir para as views e finalizar o nosso tutorial.

Primeiramente vamos criar um partial, onde essa view será comum tanto para as telas de new.html.erb como edit.html.erb. Em sua aplicação vá até SUA_APLICAÇÂO/app/view/users/ e crie um arquivo chamado _user.html.erb e veja como será o código desse arquivo.

Agora, que temos o partial _user.html.erb precisamos adaptar as telas de edit.html.erb e new.html.erb então vamos seguir o seguinte código:

E nas views index.html.erb e show.html.erb iremos fazer a chamada da imagem.

Finalmente terminamos o nosso objetivo de fazer com que a nossa aplicação faça upload de arquivos. E caso você queira saber mais sobre o paperclip basta acessar a sua Documentação/RDoc ou entrar na lista de discussão do paperclip. É isso pessoal espero que tenham gostado.

Utilizando o Rails 2.2 para enviar email via gmail por smtp/imap 4

Posted by Herminio on fevereiro 27, 2009

Bem, irei mostrar como o Rails utilizará um servidor de email via smtp / imap para mandar emails. Onde teremos o uso do gmail, mas poderá ser qualquer provedor.

1. Primeiramente ter o rails instalado e funcionando.
2. Depois iremos instalar um plugin para agilizar o nosso trabalho, o plugin se chama action_mailer_optional_tls.

Como instalar o plugin? Existem duas maneiras.

A primeira maneira é instalar usando os scripts do próprio rails.

ou A segunda maneira é ir no site do plugin e clicar em download e descompactar na pasta:

Após ter instalado o plugin, basta abrir o arquivo e incluir as seguintes linhas, em:

depois disto vamos criar um mailer:

Após executar o comando acima, basta abrir este arquivo e incluir essas informações, para a funcionalidade de confirmar via email que a conta do usuário foi criada.

Esse será o template utilizado que será enviado no corpo da mensagem, e estamos utilizando texto, já pensando nas pessoas que só recebem emails do tipo texto.

E para finalizar vamos colocar a chamada na action create do controller de users para que seja enviado email assim que o usuário for criado e savo no banco de dados.

Vamos incluir no controller:

Bem, agora basta você implementar na sua aplicação e testar, para mais informações basta acessar o Rails Guides!