Un jour, une gem

08/03/2012

Jeudi c'est Mailboxer

gem install mailboxer

You’ve got a mail!

Aujourd’hui on dit bonjour à Mailboxer ! Le développement de cette gem suit de près celui de Social Stream ; afin de lui donner un système de communication / notification simple et efficace.

Pour mettre en place cette gem on procède comme ceci :

rails g mailboxer:install

Commande qui génère l’initializer de Mailboxer. Initializer que voici :

Mailboxer.setup do |config|
  # Permet de configurer si votre application utilise ou non les emails pour les messages et notifications 
  config.uses_emails = true  
  # Adresse par défaut d'expédition
  config.default_from = "no-reply@dit.upm.es"
  # Par défaut l'attribut email du model sera pris mais il est possible de changer cela ici
  config.email_method = :mailboxer_email
  # La même chose pour l'attribut name
  config.name_method = :name
end

Préparer nos utilisateurs à communiquer :

class User < ActiveRecord::Base
  acts_as_messageable
end

On peut ajouter cette méthode à d’autres models pour qu’ils communiquent entre eux.

Une fois que tout est prêt, vous avez accès à toute une liste de méthodes. Par exemple :

alfa = User.find(1)
beta = User.find(2)
# alfa veut envoyer un message à beta
alfa.send_message(beta, "Body", "subject")
# alfa récupère toutes ses conversations
alfa.mailbox.conversations
# alfa récupère son courrier entrant
alfa.mailbox.inbox
# alfa récupère son courrier sortant
alfa.mailbox.sentbox
# alfa récupère sa corbeille
alfa.mailbox.trash

La gem est bien maintenue et ne cesse d’évoluer. D’autres fonctionnalités devraient s’ajouter prochainement !

Le lien utile