1 Criando uma aplicação Rails 3
Se você já fez o café de hoje, ótimo, podemos iniciar nosso tutorial. Primeiro você deve instalar o Rails 3. Para fazê-lo, basta executar:
$ gem install rails
Qualquer dúvida, acesse a documentação oficial.
Agora vamos criar a aplicação. Abra seu console, e execute:
$ rails new mailee-example
create
create README
create Rakefile
create config.ru
...
$ cd mailee-example
2 Instalando a Gem
Pronto, a sua aplicação está criada. O Rails 3 utiliza um sistema chamado Bundler para gerenciamento das Gems. Talvez seja interessante dar uma estudada neste excelente sistema antes de utilizá-lo, para entender bem o conceito. Mas é bem, simples: edite o arquivo Gemfile que está na raiz da aplicação “mailee-example” e adicione a gem “mailee”, na versão “0.1.0”:
source 'http://rubygems.org'
gem 'rails', '3.2.0'
...
gem 'mailee'
Agora, dentro da pasta do projeto, vamos executar o bundler, para que a Gem do Mailee seja instalada:
$ bundle install
Fetching source index from http://rubygems.org/
Using rake (0.8.7) from system gems
Using abstract (1.0.0) from system gems
Using activesupport (3.0.0.beta4) from system gems
...
3 Criando um cadastro de clientes
Agora vamos criar um cadastro de clientes usando um scaffold simples:
$ rails g scaffold Client name:string email:string news:boolean
invoke active_record
create db/migrate/20100728183215_create_clients.rb
create app/models/client.rb
...
E executar a migração no banco:
$ rake db:migrate
O que nós precisamos é que estes clientes sejam sincronizados com Mailee. Ou seja, ao cadastrar um cliente, que tenha marcado “news”, este contato deve ir para o Mailee automaticamente. Se o contato for excluido, ou desmarcar este campo, ele deve desaparecer do Mailee.
Para fazer isto, precisamos fazer duas coisas. A primeira é configurar nossa chave de acesso à API e a segunda é modificar nosso modelo. Vamos lá.
3.1 A chave de acesso
Para usar a API o Mailee gera uma chave secreta para cada cliente. Tome muito cuidade com esta chave, ela é tão ou mais importante que a sua senha. Com ela, alguém mal intencionado poderá ter acesso aos seus clientes. Para pegar esta chave, vá em configuração, depois em integração e por fim em rest.


Copie a chave, e execute o seguinte comando na sua app:
rails g mailee_rails:setup
Cole a chave e voilà, ele vai criar um initializer (config/initializers/mailee.rb) com este conteúdo:
Mailee::Config.site = 'http://api.01295d232df4b.gem.mailee.me'
A chave que usei é de uma conta de teste. Se você não quiser criar uma conta nova no Mailee, pode usar ela para testes a vontade :D
3.2 Modificando o modelo
Para que o nosso modelo Client saiba que ele deve sincronizar os dados com o Mailee, basta abrí-lo e adicionar o método “sync_with_mailee”. Assim:
class Client < ActiveRecord::Base
sync_with_mailee
end
Para finalizar, vou adicionar uma rota root para o index do controle que criamos, remover o public/index.html e iniciar o server:
MaileeExample::Application.routes.draw do |map|
resources :clients
root to: "clients#index"
end
$ rm public/index.html
$ rails s
=> Booting WEBrick
=> Rails 3.0.0.beta4 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-07-28 15:51:41] INFO WEBrick 1.3.1
[2010-07-28 15:51:41] INFO ruby 1.8.7 (2010-01-10) [i486-linux]
[2010-07-28 15:51:46] INFO WEBrick::HTTPServer#start: pid=9666 port=3000
...
E vamos abrir nosso navegador em localhost:3000. Agora você pode cadastrar clientes e verificar se eles estão no Mailee.


4 More stuff
Há mais coisas que a Gem é capaz de fazer, como por exemplo, definir colunas diferentes para sincronização (caso você não use name, email ou news, por exemplo) ou enviar lotes de informações em comandos rake. Para saber mais, acesse a documentação do projeto no GitHub ou contate o nosso pessoal.